我有2个表,我想知道是否可以与同一个实体建立多个关系。特殊子项是一个entity2,类型=“specialType”。
@Entity
public class entity1 {
// properties
@OneToMany
private Set<entity2> children;
@OneToOne
private entity2 specialChild;
}
@Entity
public class entity2 {
private String type;
@ManyToOne
private entity1 parent;
}
如果无法映射(过滤器?),有没有办法注释specialChild属性@Transient并填入查询?
类似的东西:
select e, sc from entity1 e
inner join entity2 sc on sc.parent.id = e.id and sc.type = "specialType"
我目前在获取entity1后在一个单独的db调用中设置entity1的specialChild。
public getEntity1(int id) {
Entity1 e = entity1Repository.findById(id);
e.setSpecialChild(
entity2.findByParentIdAndType(e.id, "specialType")
);
return e;
}
我正在使用spring数据和休眠。