Отображение один в один в nhibernate не работает так, как вы думаете. Он спроектирован так, что у вас есть два класса, которые при сохранении в соответствующих таблицах имеют одинаковые первичные ключи.
Однако вы можете заставить это работать, но это не красиво. Я покажу вам, как потом предложить несколько альтернатив:
В вашей транзакции hbml:
<one-to-one name="Sequence" class="TransactionSequence" property-ref="Transaction"/>
В вашей последовательности html:
<many-to-one name="Transaction" class="Transaction" column="fk_Transaction_Sequence" />
Этот должен делать то, что вы хотите, чтобы он делал. Обратите внимание на свойство ref.
Следующий вопрос, который вы собираетесь опубликовать, будет касаться того, как вы лениво загружаетесь в связи один-к-одному. Ответ: ты не можешь ... ну, ты можешь, но это, вероятно, не сработает. Проблема в том, что у вас есть внешний ключ в таблице последовательности, что означает, что nhibernate должен попасть в базу данных, чтобы увидеть, существует ли цель. Затем вы можете попробовать поэкспериментировать с constrained = "true / false", чтобы посмотреть, сможете ли вы убедить его лениво загрузить однозначную ассоциацию.
В целом, это приведет к полной трате вашего времени.
Я предлагаю либо:
- Имейте две ассоциации многие-к-одному.
- Имейте связь многих с одним с коллекцией на другом конце.
Это избавит вас от многих головных болей в долгосрочной перспективе.