JPA:如何将@OneToMany与不同的目标类型一起使用
我有一个实体Y,希望在多个不相关的实体X1,X2。。。这种关系应该是双向的。这可以通过@ManyToOne/@OneToMany实现吗?我试过了JPA:如何将@OneToMany与不同的目标类型一起使用,jpa,Jpa,我有一个实体Y,希望在多个不相关的实体X1,X2。。。这种关系应该是双向的。这可以通过@ManyToOne/@OneToMany实现吗?我试过了 @Entity class X1 { @Id String uuid_; @OneToMany(mappedBy="owner_") List< Y > yList_; } @Entity class X2 { @Id String uuid_; @OneToMany(mappedBy="ow
@Entity
class X1 {
@Id
String uuid_;
@OneToMany(mappedBy="owner_")
List< Y > yList_;
}
@Entity
class X2 {
@Id
String uuid_;
@OneToMany(mappedBy="owner_")
List< Y > yList_;
}
@Entity
class Y {
@Id
String uuid_;
@ManyToOne
String owner_;
}
@实体
X1类{
@身份证
字符串uuid_uid;
@OneToMany(mappedBy=“所有者”)
列表yList;
}
@实体
X2类{
@身份证
字符串uuid_uid;
@OneToMany(mappedBy=“所有者”)
列表yList;
}
@实体
Y类{
@身份证
字符串uuid_uid;
@许多酮
字符串所有者;
}
但这不起作用,因为字符串不是实体,不能用作关系属性
我还尝试将“字符串所有者”替换为“XBase所有者”,使用XBase作为X1和X2的@MappedSuperClass。这产生了相同的错误:“[class Y]使用非实体[class XBase]作为关系属性[field owner\uz]中的目标实体”
我想知道在关系的“一”端是否可能有不同的不相关类型。您将如何实现与JPA的这种关系?因为X1和X2是“不相关的类型”,所以无法在单个映射中合并它们。您需要在Y中有两个不同的@ManyToOne
映射:
@Entity
class Y {
@Id
String uuid_;
@ManyToOne
X1 owner1_;
@ManyToOne
X2 owner2_;
}
当然,您需要在@OneToMany
映射中相应地调整mappedBy
属性的值