hibernate5:返回的计数值是java.time.duration,而不是java.lang.long

czfnxgou  于 2021-07-13  发布在  Java
关注(0)|答案(0)|浏览(184)

尝试使用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 因为它是巨大的。请让我如果一些具体领域是需要或应该研究。
谢谢!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题