尝试使用hibernate 5.4.17获取count(*)时,计数值(从 nativeQuery.uniqueResult()
在hibernate 4.2.17中,返回java.time.duration作为java.lang.long。
代码:
@org.springframework.transaction.annotation.Transactional
public int getResultCount(String queryString) {
NativeQuery nativeQuery = this.getNativeSQLQuery(queryString);
Object countObject = nativeQuery.uniqueResult();
if (countObject instanceof BigInteger) {
BigInteger obj = (BigInteger)countObject;
return obj.intValue();
} else {
long count = (Long)countObject;
return (int)count;
}
}
querystring的值-
SELECT COUNT(*) FROM Role role inner join ( SELECT rolePriv.role_id FROM role_privilege rolePriv WHERE rolePriv.permission IN ('user:view','user:edit') GROUP BY rolePriv.role_id HAVING COUNT(distinct rolePriv.permission) = 2 ) rolePrivResult on role.role_id=rolePrivResult.role_id where role.type = 0
有人能告诉我哪些地方可能会出错,以及我应该在哪里查看吗?我不是在粘贴 nativeQuery
因为它是巨大的。请让我如果一些具体领域是需要或应该研究。
谢谢!
暂无答案!
目前还没有任何答案,快来回答吧!