Web アプリケーションには Spring + Hibernate を使用します。
この Web アプリケーションは、関連のない 2 つの運用サイトにデプロイされます。これら 2 つの運用サイトは Webapp を使用して Person データを並行して生成および使用します。
私がしなければならないことは、これら 2 つの無関係な本番サイトで生成された Person がすべて個別の PK を持っていることを確認して、いつでもこれら 2 つのサイトからの Person データをマージできるようにすることです。
私に課せられたさらなる制約は、これらの PK が に収まるということ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
、PK が異なるシーケンス (おそらくS_PERSON_1
と) から生成されるように、構成可能なものに変換します。S_PERSON_2
もちろん、
<generator class="sequence">
<param name="sequence">${sequenceName}</param>
</generator>
うまくいかないので、何か他のことを考え出さなければなりません...ジェネレーターは、シーケンスまたは別のものを順番に指す構成可能なBeanを指す必要があると思いますが、それを行う方法がわかりません...
アイデアや回避策はありますか?
ありがとう!