升级到休眠 5 后 JPA 应用程序中的序列生成器警告

Sequence generator warning in JPA Application after upgrading to hibernate 5

在 JPA 应用程序中升级到 hibernate 5 后,我遇到了以下问题。

HHH90000015: Found use of deprecated [org.hibernate.id.MultipleHiLoPerTableGenerator] table-based id generator; use org.hibernate.id.enhanced.TableGenerator instead. 

HHH90000014: Found use of deprecated [org.hibernate.id.SequenceGenerator] sequence-based id generator; use org.hibernate.id.enhanced.SequenceStyleGenerator instead.  

实体是这样注释的:enter code here

@Id
@GeneratedValue(strategy=GenerationType.TABLE, generator="TB_SEQ_GEN")
private long id;

@Id
@GeneratedValue
private long id;`

persistence.xml:`

<shared-cache-mode>NONE</shared-cache-mode>
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"></property>
<property name="hibernate.show_sql" value="false"></property>
<property name="hibernate.hbm2ddl.auto" value="update"></property>
<property name="hibernate.id.new_generator_mappings" value="true">
</property>

orm.xml:

<table-generator name="TB_SEQ_GEN" table="SEQUENCE_GENERATOR" schema="tb" pk-column-name="SEQ_NAME" value-column-name="NEXT_VAL" pk-column-value="TB" initial-value="1000" allocation-size="1000">

尝试将映射更改为如下内容:

@Id
@GenericGenerator(
        name = "myTableGenerator",
        strategy = "org.hibernate.id.enhanced.TableGenerator",
        parameters = {
                @Parameter(name = "table_name", value = "MY_SEQUENCES")
        }
)
@GeneratedValue(generator = "myTableGenerator")
private long id;

和:

@Id
@GenericGenerator(
        name = "mySequenceGenerator",
        strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator",
        parameters = {
                @Parameter(name = "sequence_name", value = "MY_SEQUENCE"),
                @Parameter(name = "initial_value", value = "1000"),
                @Parameter(name = "increment_size", value = "1")
        }
)
@GeneratedValue(generator = "mySequenceGenerator")
private long id;