Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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 存在行时返回0的JPQL计数_Java_Jpa_Eclipselink_Jpql_Named Query - Fatal编程技术网

Java 存在行时返回0的JPQL计数

Java 存在行时返回0的JPQL计数,java,jpa,eclipselink,jpql,named-query,Java,Jpa,Eclipselink,Jpql,Named Query,我使用两个相同的JPQL namedQuery,除了一个是计数。以下是查询: select i from IssueRingReqsBrit i where i.ringDataRequest = 'I' and i.onRingIssue = 'Y' and i.noCardIssued = 0 select COUNT(i) from IssueRingReqsBrit i where i.ringDataRequest = 'I' and i.onRingIssue = 'Y' and

我使用两个相同的JPQL namedQuery,除了一个是计数。以下是查询:

select i from IssueRingReqsBrit i where i.ringDataRequest = 'I' and i.onRingIssue = 'Y' and i.noCardIssued = 0

select COUNT(i) from IssueRingReqsBrit i where i.ringDataRequest = 'I' and i.onRingIssue = 'Y' and i.noCardIssued = 0
IssueRingReqsBrit是一个视图

第一个查询返回一个6的列表,这是正确的

第二个查询count返回0

使用的数据库是Oracle。使用带日食的玻璃鱼。PU上的共享缓存模式设置为“无”

使用Oracle中的本机查询,将返回正确的值

下面是我用来执行查询和检查结果的代码。这些行之间没有其他代码,它们是复制和粘贴的,就像在Java中一样

query = em.createNamedQuery("IssueRingReqsBrit.onRingIssue_toSend_initial");

System.out.println("Size: " + query.getResultList().size() );


//ringingRequestRingIssueYesToSendInitial
query = em.createNamedQuery("IssueRingReqsBrit.onRingIssue_toSend_initial_count");


ringingRequestRingIssueYesToSendInitial = ((Long)query.getSingleResult()).intValue();

System.out.println("ringingRequestRingIssueYesToSendInitial = " + ringingRequestRingIssueYesToSendInitial);
非常感谢您的建议。

基于,在COUNT函数中,作为聚合函数参数的路径表达式必须在状态字段中终止。COUNT的路径表达式参数可以在状态字段或关联字段中终止,或者COUNT的参数可以是标识变量。所以试试这样吧

select COUNT(i.<field>) from IssueRingReqsBrit i where i.ringDataRequest = 'I' and i.onRingIssue = 'Y' and i.noCardIssued = 0
计数返回长

使用返回的结果为长。

基于,在COUNT函数中,作为聚合函数参数的路径表达式必须在状态字段中终止。COUNT的路径表达式参数可以在状态字段或关联字段中终止,或者COUNT的参数可以是标识变量。所以试试这样吧

select COUNT(i.<field>) from IssueRingReqsBrit i where i.ringDataRequest = 'I' and i.onRingIssue = 'Y' and i.noCardIssued = 0
计数返回长


利用您在很长一段时间内返回的结果。

@AndreiI是的,我将用我用来执行查询和检查的代码更新问题。@AndreiI是的,我将用我用来执行查询和检查的代码更新问题。太棒了!解决了这个问题!非常感谢。如果这是一个需求,我不确定为什么它不会导致编译错误,但我会知道未来。再次感谢,太棒了!解决了这个问题!非常感谢。如果这是一个需求,我不确定为什么它不会导致编译错误,但我会知道未来。再次感谢。