java - 如何在JPA中生成sql?

标签 java sql hibernate jpa

如何使用 JPA 生成 SQL SELECT count(*) from item_entrada where not isfinalizado

`isfinalizado boolean DEFAULT false`

行:

真实 真的 真的 错误

我的预期结果是 1,但我收到 3

我的代码:

        CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
        Root<ItensEntrada> rt = cq.from(ItensEntrada.class);
        cq.select(em.getCriteriaBuilder().count(rt));
        cq.where(rt.get("isfinalizado"));
        Query q = em.createQuery(cq);
        return ((Long) q.getSingleResult()).intValue();

最佳答案

在 SQL 中,您使用的是 not isfinalizado,而在条件查询中,您没有检查 not 条件。

我建议在条件查询中使用谓词来实现这一点。

关于java - 如何在JPA中生成sql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51408799/

相关文章:

java - Spring Wiring 泛型类型的动态 bean

java - 如何将单词存储到数组/数组列表中而不会出现重复的单词

mysql MAX 查询不返回连接上的最新记录

php - 通配符 mysql LIKE 或 IN 数组值问题

Java FileOutputStream 写入不工作

java - 有没有一种简单的方法将 varchar2(1) ("1"或 "0") 映射到 JPA boolean 类型

另一个数据库中的 SQL 外键

java - 解析 hbm 文件时出现连接超时错误

java - 如何为两个不同的 session 配置两个hibernate transactionManager

java - “Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1;”-使用@Scheduled方法调用删除时