我有两个相关的实体对象。
类 A
继承自通用 Base
类。
@Entity
public class A extends Base<B> {
}
@Entity
public class B {
@ManyToOne(cascade = CascadeType.ALL)
private A a;
}
类C
;
@Entity
public class C extends Base<D> {
}
@Entity
public class D {
@ManyToOne(cascade = CascadeType.ALL)
private C c;
}
使用基
类;
@Entity
public class Base<T> {
@OneToMany(mappedBy = "{both a & c here?}", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
Set<T> set;
}
如何使 Base
上的 mappedBy
属性支持两个不同的值?
最佳答案
重命名两个 @ManyToOne
带注释的 parent 字段如何?
@ManyToOne(cascade = CascadeType.ALL)
private A parent;
和
@ManyToOne(cascade = CascadeType.ALL)
private C parent;
那么你就可以拥有;
@OneToMany(mappedBy = "parent", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
Set<T> set;
因为您不能将非常量值作为注释参数传递。
关于java - JPA - 如何对通用结构中的不同字段使用@OneToMany mappedBy 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57883007/