gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 08:06:12 34 4
gpt4 key购买 nike

我在没有任何 XML 的情况下通过类似的方式初始化 Hibernate

org.hibernate.SessionFactory sessionFactory = 
new org.hibernate.cfg.Configuration().
.setProperty(...)
.setProperty(...)
...
.buildSessionFactory();

我的类(class)使用像这样的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,但它似乎被完全忽略了

最佳答案

我猜您正在寻找如何为您的 SequenceSytleGenerator 设置 increment_size 属性。

下面的示例片段使用 @GenericGenerator 注释和 hilo 优化器和 SEQUENCE 策略设置 increment_size

@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")
})

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

关于java - 如何启用 Hibernate HiLo 实体标识符优化器策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34551509/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com