我們使用Spring + Hibernate作爲Webapp。Spring + Hibernate:如何擁有一個可配置的PK生成器?
該Webapp將部署在兩個不相關的生產站點上。這兩個生產站點將使用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
從不同的序列產生的的PK(也許S_PERSON_1
和S_PERSON_2
),具體取決於部署站點的Spring配置文件。
當然,
<generator class="sequence">
<param name="sequence">${sequenceName}</param>
</generator>
不工作,所以我必須到別的什麼事情弄清楚......我想我的發電機應指向一個可配置的bean,反過來指向一個序列或其他,但我不知道該怎麼做...
任何想法或解決方法?
謝謝!
是的,這就是我目前的選擇。這個解決方案的問題是它增加了一個部署步驟。 我真的很想做的事情是創建兩個不同的序列,並將映射配置爲指向現有Spring配置文件中的序列1或序列2。 – 2008-10-09 07:43:47