[英]spring jpa - inheriting entity does not get its own id column
我有一个继承自Item
的实体HygieneItem
。
@Entity
@Table(name="hygieneitems")
public class HygieneItem extends Item
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "hygieneitem_id")
private long id;
@Column(name="retailer")
private String retailer;
// getters & setters
}
@Entity
@Table(name="items")
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public class Item
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "item_id")
private long id;
@Column(name="item_name")
private String itemName;
//getters & setters
}
但hygieneitems
表使用item_id
而不是其自己的hygieneitem_id
Hibernate: create table hygieneitems (item_id bigint not null, item_name varchar(255), cart_id bigint not null, retailer varchar(255), primary key (item_id))
Hibernate: create table items (item_id bigint not null, item_name varchar(255), cart_id bigint not null, primary key (item_id))
在jpa文档中,我刚刚阅读了
[...] InheritanceType.TABLE_PER_CLASS,每个具体类都映射到数据库中的单独表。 类中的所有字段或属性(包括继承的字段或属性)都映射到数据库中类表中的列。
我怎样才能告诉JPA,它应该给hygieneitems
表自己的ID列以及HygieneItem
和Item
(除item_id
列之外)中定义的列?
该项目可以在github上找到
谢谢您的帮助
您不能覆盖继承层次结构中的ID。
因此,主键@Id总是在父类中定义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.