java-Hibernate JPA无法为子类映射不同的id
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-Hibernate JPA无法为子类映射不同的id,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1311字,纯文字阅读大概需要2分钟。
内容图文
出于在进入该项目之前的原因,有些表具有相似的类型,但具有不同的ID列.
所以,当我尝试这个
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class Element implements Serializable {
public String title;
}
@Entity
public class PrimaryElement extends Element {
@Id
long pid;
}
@Entity
public class OtherElement extends Element {
@Id
long oid;
}
但是然后我得到一个明显的错误
No identifier specified for entity: Element
现在,我不能很好地将ID放在Element类中,因为它们显然已映射到不同的列.
我尝试了@Id和’abstract’和@MappedSuperClass等各种样式.
我完全不知所措.有没有解决的办法?
任何见解将不胜感激.
谢谢!
解决方法:
您可以用@MappedSuperclass替换Element类的@Entity和@Inheritance批注(此批注负责技术映射,只有PrimaryElement和OtherElement将是功能齐全的实体),或者将带有@Id批注的oid字段移到类中元素,并在其子类中使用@AttributeOverride批注来修改列名(在这种情况下,抽象类Element也将是功能齐全的实体).
@AttributeOverride(name="oid", column=@Column(name="primary_element_id"))
更新:
@MappedSuperclass
public abstract class Element implements Serializable {
@Id
private long id;
public String title;
}
@Entity
@AttributeOverride(name="id", column=@Column(name="pid"))
public class PrimaryElement extends Element {
}
@Entity
@AttributeOverride(name="id", column=@Column(name="oid"))
public class OtherElement extends Element {
}
内容总结
以上是互联网集市为您收集整理的java-Hibernate JPA无法为子类映射不同的id全部内容,希望文章能够帮你解决java-Hibernate JPA无法为子类映射不同的id所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。