Как установить множественные отношения один ко многим с одним и тем же столбцом гибернации
Есть две сущности.
- Маршрут (Прибытие, Идентификатор прибытия и Отправление, Идентификатор отправления) как местоположение
- Расположение (Прибытие, Отправление) как Маршрут
Местоположение будет иметь 2 отношения один ко многим с таблицей маршрутов.
Я пытаюсь установить.
Route.xml
<many-to-one name="departure" class="com.nakisa.agency.Location" fetch="select" insert="false" update="false">
<column name="locationID" not-null="true" />
</many-to-one>
<many-to-one name="arrival" class="com.nakisa.agency.Location" fetch="select" insert="false" update="false">
<column name="locationID" not-null="true" />
</many-to-one>
Location.xml
<set name="arrivals" table="Routes" inverse="true" lazy="true" fetch="select">
<key>
<column name="arrivalID" not-null="true" />
</key>
<one-to-many class="com.nakisa.agency.Route" />
</set>
<set name="departures" table="Routes" inverse="true" lazy="true" fetch="select">
<key>
<column name="departureID" not-null="true" />
</key>
<one-to-many class="com.nakisa.agency.Route" />
</set>
Я получаю сообщение об ошибке, так как вылеты идентификаторов равны нулю, даже если я установил вылеты в маршрут.
Как исправить эти сопоставления для того, чтобы работать
1 ответ
Я думаю, у вас есть проблемы с получением:
Lazy="true|false"
контролирует, загружается ли ассоциация с нетерпением или по требованию.fetch="select|subselect|join|batch"
управляет загрузкой этой сущности или коллекции, когда она должна быть загружена.
С lazy="true"
а также fetch="select"
Hibernate будет лениво загружать коллекцию и загружать ее с помощью выбора. Если вы установите lazy="false"
, тот же выбор будет выполнен, разница будет в том, что он будет выполнен с нетерпением. Надеюсь, это имеет смысл.
Попробуйте установить lazy="false"
, а затем посмотреть, если ваш departureID
все еще null
,