Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate/JPA处理空结果集_Java_Hibernate_Jakarta Ee_Jpa_Null - Fatal编程技术网

Java Hibernate/JPA处理空结果集

Java Hibernate/JPA处理空结果集,java,hibernate,jakarta-ee,jpa,null,Java,Hibernate,Jakarta Ee,Jpa,Null,我有一个标准生成器,它被定义为返回一个Long。如果结果集为空,则整个应用程序将失败。如何处理此问题以返回一个设置的数字,例如1000 Long yesterday = new Long(0); CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery<Long> q = cb.createQuery(Long.class); Root<CustomerHistory> hist = q.from(Custo

我有一个标准生成器,它被定义为返回一个Long。如果结果集为空,则整个应用程序将失败。如何处理此问题以返回一个设置的数字,例如1000

Long yesterday = new Long(0);

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Long> q = cb.createQuery(Long.class);
Root<CustomerHistory> hist = q.from(CustomerHistory.class);

q.multiselect(hist.get("total"));
Date yesterDate = new LocalDate().minusDays(1).toDateTimeAtStartOfDay().toDate();

Predicate w1 = cb.equal(hist.<Date>get("date"), yesterDate);
Predicate w2 = cb.equal(hist.get("customer"), customer);
q.where(w1,w2);

yesterday = em.createQuery(q).getSingleResult();


return yesterday < tot;
Long昨天=新的Long(0);
CriteriaBuilder cb=em.getCriteriaBuilder();
CriteriaQuery q=cb.createQuery(Long.class);
根历史=q.from(CustomerHistory.class);
q、 multiselect(历史获取(“总计”);
Date yesterDate=new LocalDate().minusDays(1.ToDateTimeAtStarToDay().toDate();
谓词w1=cb.equal(历史获取(“日期”),昨天日期);
谓词w2=cb.equal(历史获取(“客户”),客户);
q、 式中(w1,w2);
昨天=em.createQuery(q).getSingleResult();
昨天返回
如果存在空的结果集,
查询.getSingleResult()
抛出一个
javax.persistence.NoResultException
,它是一个
运行时异常。您可以在try-catch块中捕获它并从那里处理它


要设置结果集的最大数量,请调用
Query.setMaximumResults(int maxResult)
并调用
getResultList()
(它返回所需实体的
列表)。

如果结果集为空,则调用
Query.getSingleResult()
抛出一个
javax.persistence.NoResultException
,它是一个
RuntimeException
。您可以在try-catch块中捕获它并从那里处理它

要设置结果集的最大数量,请调用
Query.setMaximumResults(int maxResult)
并调用
getResultList()
(它返回所需实体的
列表)。

java.lang.Object getSingleResult()
Execute a SELECT query that returns a single untyped result.
Returns:
   the result
Throws:
   NoResultException - if there is no result
   NonUniqueResultException - if more than one result
考虑捕获NoResultException的异常并继续使用jpaapi中的逻辑

java.lang.Object getSingleResult()
Execute a SELECT query that returns a single untyped result.
Returns:
   the result
Throws:
   NoResultException - if there is no result
   NonUniqueResultException - if more than one result

考虑捕获NoResultException的异常并继续执行逻辑

捕获您的异常,在这种情况下,您需要捕获一个
NoResultException
:啊,这很有意义!总有一天我会学会的!捕获您的异常,在这种情况下,您需要捕获一个
NoResultException
:啊,这很有意义!总有一天我会学会的!