使用JPA join从父实体返回子实体

时间:2013-08-29 17:19:17

标签: java hibernate jpa

如何在JPA中返回与父级有关系的实体列表?

我有一个User实体,在名为pets的属性上有一个@OneToMany映射。子实体属于Pet类型。这只是一种单向关系。

如何在JPA中编写一个返回给予用户所有宠物的联接?

1 个答案:

答案 0 :(得分:0)

所以你有几个选择。

您可以使用以下注释:

@ManyToOne
@JoinColumn

这就是你如何使用它。

public class User
{
   // your standard fields / columns in database

   @OneToMany  (Fetch can be of eager/ lazy)
   @JoinColumn (name="column to join on", referencedColumnName="column to join on in parent class")
   private List<Pet> pets;
}


public Class Pet
{
   //data fields
}

当您查询用户对象时,实际上会发生宠物列表。

使用JPA查询数据库。

所以我猜你的用户会有某种id,而pet表会有一些ID链接到用户。

所以我们会做以下

Select * from user  where user_id = ?;

这基本上会为您提供用户对象

Select * from pet where owner_user_id = ?

这基本上会为您提供属于该用户的所有宠物。

然后你可以自己填充你的对象。

我不是百分之百确定你的桌子是什么样的,但是我希望能够从我的观点来看它。“