【发布时间】:2021-04-07 08:27:32
【问题描述】:
我有以下场景:
我有一个名为MyOtherEntity 的实体,它有一个类型属性。
MyEntity 仅与基于 MyOtherEntity 类型的某些 MyOtherEntity 实体相关联。
MyEntity 类(仅用于演示,未正确建模):
@Data
@Entity
@Table(name = "my_table")
public class MyEntity {
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(
name = "my_entity_my_other_entity_type1",
joinColumns = {@JoinColumn(name = "my_entity_id")},
inverseJoinColumns = {@JoinColumn(name = "my_other_entity_id")}
)
private List<MyOtherEntity> myOtherEntityType1;
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(
name = "my_entity_my_other_entity_type2",
joinColumns = {@JoinColumn(name = "my_entity_id")},
inverseJoinColumns = {@JoinColumn(name = "my_other_entity_id")}
)
private List<MyOtherEntity> myOtherEntityType2;
// more fields
}
MyOtherEntity类:
@Data
@Entity
@Table(name = "my_other_entity")
public class MyOtherEntity {
private String type;
// more fields
}
更详细的例子:
假设MyOtherEntity type1、type2 和 type3 只有 3 种类型。我的目标是仅将 MyEntity 与 type1 和 type2 的 MyOtherEntity 实体相关联。
是否可以使用 Hibernate 实现此功能?
【问题讨论】:
-
只加入你的 MyOtherEntity 一次。
-
这样,当我获取
MyEntity时,所有MyOtherEntity实体也会被获取。