MappedSuperclass - Subclass中的SequenceGenerator(hibernate 5.2.13.Final)

时间:2018-02-12 14:43:06

标签: java hibernate jpa

我们尝试将项目形式5.2.X中的hibernate版本升级到5.2.13.Final, 但新的休眠正确强制

  

生成器名称的范围对于持久性单元是全局的(跨所有生成器类型)。

我们的clas结构由一个BaseEntity和带有定义的@GenericGenerator的子类组成,所有生成器都使用相同的名称。

@MappedSuperclass
public class BaseEntity {
  @Id
  @Column(name="ID")
  @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="idGenerator")
  private Long id;
}

@Entity
@Table(name = "SAMPLE_TABLE")
@GenericGenerator(strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator", name = "idGenerator", parameters = {
    @Parameter(name = SequenceStyleGenerator.SEQUENCE_PARAM, value = "SAMPLE_SEQ") })
public class SampleEntity extends BaseEntity 

是否可以选择更正此生成器定义而不在每个类中放置 id 字段?

1 个答案:

答案 0 :(得分:0)

这对我们来说适用于Hibernate 5.2.1和postgres:

this

代码在kotlin中,但是您可以轻松地将其转换为Java。

如果您需要有关SequenceStyleGenerator的更多信息,请参见docs