我将Spring应用程序从Spring Boot 1.5.x切换到Spring Boot 2.0。我正在使用Hibernate Envers,在切换之前,我有RevInfo
表来存储有关修订的信息。 id是一个自动增量。
迁移后,Hibernate创建了一个没用的新hibernate_sequence
表。
我以这种方式定制了我的RevInfo bean:
@Entity
@RevisionEntity(RevInfoListener.class)
public class RevInfo {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "native")
@GenericGenerator(name = "native", strategy = "native")
@RevisionNumber
private int id;
@RevisionTimestamp
private long timestamp;
private String username;
private String remoteAddress;
//omitted getters and setters
我避免扩展DefaultRevisionEntity
,因为我更改了@Id
@Generated
value
以利用自动增量(我正在使用Mysql)。
尽管如此,使用spring.jpa.hibernate.ddl-auto: validate
,即使没有使用,Hibernate也要求存在表。事实上,在我的配置中,Hibernate正在使用我的自动增量id,表hibernate_sequence
永远不会更新。
如何禁用hibernate_sequence
表的创建/需要?如果我不能,这可能是一个错误吗?
答案 0 :(得分:0)
感谢您的帖子。它帮助我找到了消除hibernate_sequence表的(自动)生成的解决方案。我的解决方案如下。请注意,我使用了Numeric.sequence("sequence1",1,1)
,这可能是您正在寻找的。无论如何,这是我提出的课程。
@GeneratedValue(strategy = GenerationType.IDENTITY)