gpt4 book ai didi

java - Hibernate createQuery remove() 在 WHERE 条件下

转载 作者:行者123 更新时间:2023-12-02 08:16:58 25 4
gpt4 key购买 nike

假设我有实体 Person。

当我尝试与 hibernate createQuery 一起使用时,它删除了 where 条件中的 ( ) 。示例:

Query query = session.createQuery("FROM Person WHERE name=? OR (id=? AND active=?)");
query.setParameter(1, "Test");
query.setParameter(2, 1);
query.setParameter(3, 1);
// and so on

当我在 hibernate 中打开调试 sql 输出时,它会生成

where person0_.`name`=? or person0_.`id`=? and person0_.`active`=?

因为我把 () 放在 where 条件中,所以输出应该是

where person0_.`name`=? or (person0_.`id`=? and person0_.`active`=?)

为什么where条件中的()被去掉了?或者我错过了什么?

谢谢

最佳答案

在 SQL 中 AND 的优先级高于 OR,因此这两个语句是等效的。 Hibernate 删除了不必要的括号。

关于java - Hibernate createQuery remove() 在 WHERE 条件下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6183389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com