如何返回与 JPA 中的父级有关系的实体列表?
我有一个 User 实体,它在名为 pets
的属性上具有 @OneToMany 映射。子实体的类型为 Pet。这只是一种单向关系。
如何在 JPA 中编写一个联接来返回给定用户的所有宠物?
最佳答案
所以你有几个选择。
您可以使用以下注释:
@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,并且宠物表将有某种链接到用户的 ID。
所以我们会执行以下操作
Select * from user where user_id = ?;
这实际上会给你用户对象
Select * from pet where owner_user_id = ?
这实际上会给您属于该用户的所有宠物。
然后您可以自己填充对象。
我不是 100% 确定你的 table 是什么样子,但我希望从我会做的角度来尝试一下。
关于java - 使用 JPA 连接从父实体返回子实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18517216/