gpt4 book ai didi

java - Spring + hibernate : how to have a configurable PK generator?

转载 作者:行者123 更新时间:2023-11-30 05:17:32 25 4
gpt4 key购买 nike

我们使用 Spring + Hibernate 作为 Web 应用程序。

此 Web 应用程序将部署在两个不相关的生产站点上。这两个生产站点将使用 Webapp 并行生成和使用人员数据。

我需要做的是确保这两个不相关的生产站点上生成的Person都具有不同的PK,以便我们可以随时合并这两个站点的Person数据。

对我施加的进一步限制是这些 PK 适合 Long,因此我无法使用 UUID。

我想要做的是更改当前的 hibernate 映射,该映射将序列 S_PERSON 作为生成器:

<hibernate-mapping default-cascade="save-update" auto-import="false">
<class name="com.some.domain.Person" abstract="true">
<id name="id">
<column name="PERSON_ID"/>
<generator class="sequence">
<param name="sequence">S_PERSON</param>
</generator>
</id>
...
</hibernate-mapping>

进入可配置的内容,以便 PERSON_ID 根据部署站点的 Spring 从不同的序列(可能是 S_PERSON_1S_PERSON_2)生成其 PK配置文件。

当然

            <generator class="sequence">
<param name="sequence">${sequenceName}</param>
</generator>

不起作用,所以我必须找出其他东西...我想我的生成器应该指向一个可配置的 bean,而该 bean 又指向一个序列或另一个序列,但我不知道如何做到这一点。 ..

有什么想法或解决方法吗?

谢谢!

最佳答案

您可以在两个生产系统上使用序列,但定义不同:

生产系统1:创建序列sequence_name从1开始递增2;

生产系统2:创建序列sequence_name从2开始增量2;

第一个序列仅生成奇数,第二个序列仅生成偶数。

关于java - Spring + hibernate : how to have a configurable PK generator?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/182721/

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