【发布时间】:2018-05-07 18:09:03
【问题描述】:
我有一个带有单个数据源的“简单”Spring Boot 应用程序。 我的配置中存在以下配置:
spring:
jpa:
hibernate:
ddl-auto: update
properties:
hibernate:
default_schema: CORE
flyway:
schemas:
- CORE
以及下面的 ID 生成器
@Id
@GeneratedValue(strategy = SEQUENCE, generator = "seq-pooled-lo")
@GenericGenerator(
name = "seq-pooled-lo",
strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator",
parameters = {
@org.hibernate.annotations.Parameter(
name = SequenceStyleGenerator.INCREMENT_PARAM,
value = "50"
),
@org.hibernate.annotations.Parameter(
name = SequenceStyleGenerator.OPT_PARAM,
value = "pooled"
),
@org.hibernate.annotations.Parameter(
name = SequenceStyleGenerator.SEQUENCE_PARAM,
value = "seq_pooled_lo_sequence"
)
})
现在我的问题如下:
当我启动这个应用程序时,它会在“CORE”模式上创建一个序列。一切正常。存储、检索数据没有问题。然后,当我启动应用程序的第二个实例但覆盖 YAML 文件以定义不同的 default_schema: SECOND 时,它不会在“SECOND”模式上生成新序列。如果我首先使用定义的“SECOND”架构启动应用程序,然后使用“CORE”启动应用程序,它将在“SECOND”架构而不是“CORE”上创建序列。
我希望它在两种模式上创建不同的序列。为什么不这样做?
我还尝试将序列手动添加到缺少它的架构中,但遗憾的是这似乎没有帮助。
【问题讨论】: