【发布时间】:2014-07-02 11:02:32
【问题描述】:
当我使用 table-per-subclass 策略时,我的基类(父类)包含复合主类。
@Column(nullable = false)
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "XXX")
@SequenceGenerator(name = "XXX", sequenceName = "XXX", allocationSize = 1)
private Long systemId;
@Id
@Column(nullable = false)
private Long version;
因此,所有扩展它的实体(据我所知)都继承了 id 及其带注释的属性。 问题是,当我创建一个新的父实体时,主实体是从序列创建的,没关系。但是当我创建子类实例时,它会增加我不需要的父 ID(从 seq 创建一个新的主节点),`因为我使用每个子类的表,并且主节点必须相同。
问题:如何抑制子类中的 id 生成?
@Entity
@PrimaryKeyJoinColumns(
{
@PrimaryKeyJoinColumn(name = "systemId"),
@PrimaryKeyJoinColumn(name = "version")
}
)
public class SUb extends Parent {
public SUb (Parent t) {
super(t);
}
public SUb () {
}
...
... no ids...
【问题讨论】: