即使没有必要,Hibernate envers 5.2.14也会创建hibernate_sequence表

时间:2018-04-04 07:38:24

标签: spring hibernate spring-boot hibernate-envers

我将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表的创建/需要?如果我不能,这可能是一个错误吗?

1 个答案:

答案 0 :(得分:0)

感谢您的帖子。它帮助我找到了消除hibernate_sequence表的(自动)生成的解决方案。我的解决方案如下。请注意,我使用了Numeric.sequence("sequence1",1,1) ,这可能是您正在寻找的。无论如何,这是我提出的课程。

@GeneratedValue(strategy = GenerationType.IDENTITY)