我们尝试将项目形式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 字段?
答案 0 :(得分:0)
这对我们来说适用于Hibernate 5.2.1和postgres:
this
代码在kotlin中,但是您可以轻松地将其转换为Java。
如果您需要有关SequenceStyleGenerator的更多信息,请参见docs