我试图得到一个狗的实体名单,是相关的一个养犬实体。
狗和犬类之间有many to one关系,狗可以有很多狗,但狗只能有一只。
KENNEL_ID是狗桌子上的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
}发布于 2016-03-14 09:37:08
有两种方法可以做到:
1-正如您声明狗类中的@ManyToOne一样,您可能希望在Kennel类中声明@OneToMany关联:
@OneToMany(mappedBy="kennel", cascade = CascadeType.ALL)
private Set<Dog> dogs = new HashSet<>();(mappedBy="*",代表Dog类中@ManyToOne的属性名称的* )。
2-如果您不想这样做,除了使用DAO / Repository层从数据库中检索狗的列表之外,您别无选择。
发布于 2016-03-11 20:33:00
请根据您的需要找到伪代码和示例。
犬1:N犬一犬->多犬
Kennel
------
Kennel_ID:1
location:"abc"
Dog
---
Dog_Id:1
Dog_Name:DogName1
Dogken_Ref_Id:1
Dog_Id:2
Dog_Name:DogName2
Dogken_Ref_Id:1
@Entity
@Table(name = "KENNEL")
public class Kennel {
@Id
@Column(name = "Kennel_ID")
private String id;
@Column(name = "LOCATION")
private String location;
@OneToMany(mappedBy="Kennel")
public Set<Dog> getDog();
}
@Entity
@Table(name = "Dog")
public class Dog{
@Id
@Column(name = "Dog_id")
private int dogId;
@Column(name = "Dog_name")
private String dogName;
@Column(name = "Dogken_Ref_Id")
private int kenRefId;
@ManyToOne
@JoinColumn(name="dogken_ref_id", referenceColumnName="Kennel_ID")
private Kennel kenDetail;
}https://stackoverflow.com/questions/35946747
复制相似问题