我们将 Spring + Hibernate 用于 Web 应用程序。
此 Webapp 将部署在两个不相关的生产站点上。这两个生产站点将使用 Webapp 并行生成和使用 Person 数据。
我需要做的是确保在这两个不相关的生产站点上生成的 Persons 都有不同的 PK,以便我们可以随时合并来自这两个站点的 Person 数据。
对我施加的另一个限制是这些 PK 适合 a Long
,所以我不能使用 UUID。
我想要做的是改变当前的休眠映射,它有序列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>
变成可配置的东西,以便根据部署站点的 Spring 配置文件PERSON_ID
从不同的序列(可能S_PERSON_1
和)生成其 PK。S_PERSON_2
当然,
<generator class="sequence">
<param name="sequence">${sequenceName}</param>
</generator>
不起作用,所以我必须弄清楚其他事情......我想我的生成器应该指向一个可配置的bean,而该bean又指向一个序列或另一个,但我不知道该怎么做......
有什么想法或解决方法吗?
谢谢!