0

帮助这个菜鸟程序员。我一直在使用JPA ,但是使用join 语句的逻辑似乎有些困扰我。

例如,我有一个名为Person, 字段的实体name, age, gender。然后例如在查询中,

select p from Person p join p.gender g

注意:这只是我感到困惑的一个例子。

问题是,为什么你join p(人)和p.gender?重点是什么?它能给出什么结果?

4

1 回答 1

1

关键在于加入多值关系。加入没有意义p.gender,我希望p.gender是属性或单值关系(人只能有一种性别)。

但是如果你加入了多值属性,例如Collection<Order> orders(一个人可以有多个订单),那么你可以搜索有一些特定订单的人:

select p from Person p join p.orders o where o.price > 12000

此查询将查找所有订单价格高于 12000 的人员。如果没有 join ,您将无法执行此操作:

select p from Person p where p.orders.price > 12000

这不起作用,因为orders它是多值的,你不能像这样遍历它。您必须使用联接(或其他东西,例如子查询)。

于 2013-06-28T09:47:38.183 回答