Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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 CriteriaBuilder不返回任何内容_Java_Hibernate_Jpa_Criteria_Criteria Api - Fatal编程技术网

Java CriteriaBuilder不返回任何内容

Java CriteriaBuilder不返回任何内容,java,hibernate,jpa,criteria,criteria-api,Java,Hibernate,Jpa,Criteria,Criteria Api,我在做CriteriaBuilder。如果记录存在,它将正确返回一个值。 但是我需要查询返回一个值,例如,一个空字符串或“,”如果没有找到记录。 目前,如果找不到记录,则不会返回任何内容。它只是跳跃 CriteriaBuilder-CriteriaBuilder=entityManager.getCriteriaBuilder(); CriteriaQuery-CriteriaQuery=criteriaBuilder.createQuery(Long.class); Root stock=cr

我在做CriteriaBuilder。如果记录存在,它将正确返回一个值。 但是我需要查询返回一个值,例如,一个空字符串或“,”如果没有找到记录。 目前,如果找不到记录,则不会返回任何内容。它只是跳跃

CriteriaBuilder-CriteriaBuilder=entityManager.getCriteriaBuilder();
CriteriaQuery-CriteriaQuery=criteriaBuilder.createQuery(Long.class);
Root stock=criteriaQuery.from(stock.class);
criteriaQuery.select(stock.get(storage))
.where(库存获取(项目编号)in(eans));
返回entityManager.createQuery(criteriaQuery.getResultList();
所以现在 是1,2,4 而不是r 1,2,4

如果3不存在


请帮助。

我认为您可以使用IFNULL解决此问题:

criteriaQuery.select(criteriaBuilder.selectCase().when(criteriaBuilder.isNull(stock.get(storage),-1).otherwise(stock.get(storage)))

我没有测试这段代码,但我认为这是正确的方向。请尝试向我们提供最新结果

我想你误解了这个问题。这不是关于返回
null
或空列表,而是关于在不合适ID的结果列表中有一些奇怪的
0
条目。例如,如果他在数据库中有ID 1、2、3、4和5,并且他的查询将只与ID 3匹配,那么他想要一个带有
[0、0、3、0、0]
的列表。现在不要问我结果列表中那些
0
的意义是什么……这可能只有OP知道。是的,没错。它不一定是零。理想情况下,一个空字符串应该替换未找到的记录。糟糕,你说得对。我误解了。我会尽力帮你的。我不知道如何更改我的查询。如果你能帮忙,那就太好了。请注意,你不能在长字符串列表中添加空字符串。我将默认值设置为-1
criteriaQuery.select(criteriaBuilder.selectCase().when(criteriaBuilder.isNull(stock.get(storage),-1).otherwise(stock.get(storage)))