Как установить множественные отношения один ко многим с одним и тем же столбцом гибернации

Есть две сущности.

  1. Маршрут (Прибытие, Идентификатор прибытия и Отправление, Идентификатор отправления) как местоположение
  2. Расположение (Прибытие, Отправление) как Маршрут

Местоположение будет иметь 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,

Другие вопросы по тегам