如何启用Hibernate HiLo实体标识符优化器策略

我正在通过类似的东西初始化没有任何XML的Hibernate

org.hibernate.SessionFactory sessionFactory = 

new org.hibernate.cfg.Configuration().

.setProperty(...)

.setProperty(...)

...

.buildSessionFactory();

我的班级使用的ID如

@Id @Generated(GenerationTime.INSERT) @GeneratedValue private Integer id;

所用的发电机SequenceStyleGenerator,这似乎是更换为过时SequenceGeneratorSequenceHiLoGenerator和什么。它用

public static final int DEFAULT_INCREMENT_SIZE = 1;

并且似乎允许通过配置

public static final String INCREMENT_PARAM = "increment_size";

但这就是我所能找到的全部。我想我必须设置一些属性“

xxx.yyy.increment_size”或以其他方式将其传递给Hibernate,但是我看不到如何做。


我知道@SequenceGenerator,但似乎被完全忽略了

回答:

我想您正在寻找如何为设置increment_size属性SequenceSytleGenerator

下面的示例代码段increment_size使用@GenericGenerator带有hilo优化器和SEQUENCE策略的注释进行设置。

@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "hilo_generator")

@GenericGenerator(

name = "hilo_generator",

strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator",

parameters = {

// Or leave it out to get "hibernate_sequence".

@Parameter(name = "sequence_name", value = "hilo_sequence"),

// Or leave it out as this is the default.

@Parameter(name = "initial_value", value = "1"),

@Parameter(name = "increment_size", value = "5"),

@Parameter(name = "optimizer", value = "hilo")

})

您无法DEFAULT_INCREMENT_SIZE使用Hibernate配置属性全局设置。您需要改为使用@Id配置属性。

以上是 如何启用Hibernate HiLo实体标识符优化器策略 的全部内容, 来源链接: utcz.com/qa/399254.html

回到顶部