Мы используем Spring + Hibernate для веб-приложения.
Это веб-приложение будет развернуто на двух не связанных между собой производственных сайтах. Эти два производственных сайта будут использовать Webapp для параллельного генерирования и использования данных Person.
Что мне нужно сделать, так это убедиться, что все люди, сгенерированные на этих двух несвязанных производственных сайтах, имеют разные PK, чтобы мы могли объединить данные людей с этих двух сайтов в любое время.
Еще одно ограничение, налагаемое на меня, заключается в том, что эти 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>
во что-то настраиваемое, так что PERSON_ID
имеют свои PK, сгенерированные из разных последовательностей (возможно, S_PERSON_1
и S_PERSON_2
) в зависимости от файлов конфигурации Spring сайта развертывания.
Конечно,
<generator class="sequence">
<param name="sequence">${sequenceName}</param>
</generator>
не работает, поэтому я должен выяснить что-то еще ... Я предполагаю, что мой генератор должен указывать на настраиваемый компонент, который в свою очередь указывает на последовательность или другое, но я не могу понять, как это сделать. ..
Есть идеи или обходной путь?
Спасибо!