我正在尝试获取与一个狗窝实体相关的Dogs实体的列表。
狗和狗窝之间有many to one
关系,即狗窝可以养多只狗,但狗只能养一只狗窝。
KENNEL_ID是DOG表中的foreign key
。
问题是狗窝没有狗列表,所以我不能做以下简单的事情:
List<Dogs> allDogsInOneKennel = kennel.getAllDogs();
但是对于狗实体,我可以:
dog.getKennel();
有没有一种方法可以让我追踪所有与一个狗窝相关的狗?
狗窝实体:
@Entity
@Table(
name = "KENNEL"
)
public class Kennel {
@Id
private String id;
@Column(
location = "LOCATION"
)
private String location;
public Kennel() {
}
//getters setters
}
最佳答案
有2种方法:
1-就像在Dog类中声明@ManyToOne一样,您可能要在Kennel类中声明@OneToMany关联:
@OneToMany(mappedBy="kennel", cascade = CascadeType.ALL)
private Set<Dog> dogs = new HashSet<>();
(mappedBy =“ *”,*表示Dog类中@ManyToOne的属性名称)。
2-如果您不想执行上述操作,则除了使用DAO /存储库层从数据库检索狗窝的狗列表之外,别无选择。