假设我的父类和子类之间有以下情况:
Class Parent {
@Id
@Column(name="product")
Long product;
//more fields.
}
Class Child extends Parent {
@Column(name="type")
String productType;
@Column(name="version")
int version;
//more fields.
}
即使子类扩展了已经具有主键的父类,是否可以在子类中拥有复合主键?
最佳答案
简短的回答是否定的。在 JPA 中,您无法重新定义主键。如果您的父类具有@ID注释,则无论继承策略如何,子类都不会允许@ID注释。
更长的答案是,如果您需要做这样的事情,您应该重新考虑您的对象映射和继承策略。如果您的 parent 已经拥有一组唯一可识别的字段,那么为什么您希望拥有一个打破此约定的 child 呢?即使您成功了,就架构和代码清晰度而言,这对您来说是安全的事情吗?
关于java - 在子类中创建复合主键 (JPA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44640921/