如何启用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
,这似乎是更换为过时SequenceGenerator
和SequenceHiLoGenerator
和什么。它用
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