第二个查询是有效的,不需要表连接

时间:2017-02-06 12:51:18

标签: java hibernate

来自hibernate参考:

特殊属性(小写)id可用于引用对象的唯一标识符。 有关更多信息,请参见第16.5节“引用标识符属性”。

from Cat as cat where cat.id = 123
from Cat as cat where cat.mate.id = 69

第二个查询是有效的,不需要表连接。

为什么第二个查询不需要表连接,为什么它提到它有效?

1 个答案:

答案 0 :(得分:0)

OP问题来自Hibernate documentation。为什么不需要加入。因为正如Hibernate所说:

  

参考标识符属性

     

对复合标识符属性的引用遵循相同的命名   规则。如果实体具有名为id的非标识符属性,则   复合标识符属性只能由其定义的引用   命名。否则,可以使用特殊的id属性来引用   标识符属性。

Quoted From Here cat.mate.id有一个标识符属性,这就是为什么它不需要加入并使用Id来引用该行。这就是为什么第二个查询比具有连接的查询更有效的原因。所以最后如果你有一个好的映射策略,它会更有效率!