- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我有一个关于可选的问题。当有可能返回 null 时应使用可选。我想用它来按项目 ID 查找图像。所以在 DAO 中:
@Override
public Optional findImage(int itemId) {
Session currentSession = entityManager.unwrap(Session.class);
return currentSession
.createQuery("select from Image as i where it.itemId=:itemId")
.setParameter("itemId", itemId)
.setMaxResults(1)
.getResultList()
.stream()
.findFirst();
}
服务中:
@Override
public Image findImage(int itemId) {
LOGGER.info("Getting image by item id: {}", itemId);
Optional opt = this.imageDAO.findImage(itemId);
return opt.orElseThrow(() -> new ImageNotFound("The image for item with id: " + itemId + " was not found"));
}
但我无法获取该值或抛出特定错误。
任何人都可以解释我应该如何通过可选方式获取单个结果吗?
谢谢!!
最佳答案
编辑
正如@Slaw所提到的,我之前的答案是不正确的,我假设问题中发布的代码没有编译问题。无论如何,这是根据@Slaw 的评论更新的答案。
基本上,代码无法编译,因为它无法推断要返回的Optional 的类型。所以只需参数化可选
@Override
public Image findImage(int itemId) {
LOGGER.info("Getting image by item id: {}", itemId);
Optional<Image> opt = this.imageDAO.findImage(itemId); <== parameterize Optional
return opt.orElseThrow(() -> new ImageNotFound("The image for item with id: " + itemId + " was not found"));
}
关于java - 对 getSingleResult 使用可选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55346441/
您好,我有一个关于可选的问题。当有可能返回 null 时应使用可选。我想用它来按项目 ID 查找图像。所以在 DAO 中: @Override public Optional findIma
我正在尝试按编号获取项目,如下所示: public Project getProjectByNum(String numProject) { Project project = new
我正在测试 JPA 项目,如下所示: try { emFactory = Persistence.createEntityManagerFactory(PERSISTENCE_
我对 hibernate 和 jpa 有一个非常奇怪的问题。下面是两段代码: public Object getObject(Date date) { try { Query
我的应用程序使用 Hibernate 连接到 SQL Server。我最近更改了我的 DAO 函数,该函数从一个表中检索计数,从“return query.getResultList().get(0)
我正在使用 JPA 查询,当我使用 query.getSingleResult(); 它正在抛出异常。我很清楚,如果有多个记录与参数匹配,该方法会抛出异常,但在我的例子中,参数是一个主键,所以这意味着
是否有任何正确的方法来处理空值,例如用户表中没有现有记录,因此它不会抛出空指针: public long generateNextId() { Query query = g
我需要从表中检索单行,我对哪种方法更好感兴趣。 一侧getSingleResult专为检索单个结果而设计,但会引发异常。此方法是否对与 getResultList 相关的性能有好处?和 query.s
我有这样的问题 SET @rownum := 0; SELECT rank, id, point FROM ( SELECT @rownum := @rownum + 1 AS
我用 ejb 创建了一个命名查询来检查用户名是否被使用。当 singleResult 为 null 时,我得到以下异常: javax.persistence.NoResultException: ge
我的实体有一个命名查询,如下所示: @NamedQuery(name = "Person.find", query = "select p from Organization p where p.na
我有以下 java 类来使用 JPA 连接和查询 MySQL 数据库: public class UserEntityManager { private EntityManagerFactory em
我正在努力将我的 JPA 持久性提供程序从 EclipseLink 2.3 切换到 Hibernate 3.6.5.Final。问题出在 native 查询上。注意:这不是 EclipseLink 的
EntityManager.getSingleResult() 对 COUNT 查询返回什么? 那么.. foo 的确切运行时类型是什么? Object foo = em.createQuery("S
我在 Controller 中有这段代码 @PostMapping(value="/Servicios/fetch-data/info-adicional", produces= {"applicat
我在 EJB3 中遇到了 JPA 的新问题我的堆栈跟踪是: Caused by: javax.persistence.NonUniqueResultException: More than one r
鉴于我的 native SQL 查询返回一个单个非空结果,有人可以帮助我评估使用 query.getSingleResult() 与使用 query.getResultList .get(0) 举个例
我已经花了两天时间解决这个问题,但离解决它还差得很远。我希望其中一位专家可以提供帮助。 问题来了。我正在使用 TomEE 1.6.0.2 (OpenEJB 4.6.0.2) 并尝试做一个返回单个结果的
我是一名优秀的程序员,十分优秀!