小编sie*_*rre的帖子

JPQL WHERE子句中的实体比较如何工作?

在JPQL中如何评估实体比较(相等)语句:是通过身份比较,equals()还是其他方式?

我花了几个小时的时间来仔细研究Hibernate和JPA的规范,但仍然找不到它的工作方式。考虑以下实体:

class MyProductType{Integer id;}
class MyProduct{Integer id; MyProductType pType;}
Run Code Online (Sandbox Code Playgroud)

现在是JPQL / HQL查询:

SELECT t FROM MyProductType t, MyProduct p WHERE p.pType = t
Run Code Online (Sandbox Code Playgroud)

(我知道这是一个丑陋的查询,只关注where子句的语义。)

那么如何p.pType = t评估?

JSR 317提到了“ entity_expression”比较,但是其行为尚不清楚。

编辑:我不喜欢Rika的以下建议是.id方法包括隐式内部联接,如果查询使用外部(LEFT)联接,通常这不是您想要的。

hibernate jpa where

4
推荐指数
1
解决办法
1853
查看次数

标签 统计

hibernate ×1

jpa ×1

where ×1