Отображение Hibernate по таблицам (возможна связь JOIN) - PullRequest
0 голосов
/ 25 октября 2011

Может отображать разрешения в спящем режиме для нескольких таблиц.

Вот пример:

  • Класс Производитель, таблица MANUFACTURER
  • Класс Car, таблица CAR Класс
  • CarType, таблица CAR_TYPE

ORM Модель

  • ПРОИЗВОДИТЕЛЬ один ко многим АВТОМОБИЛЕМ (MANUFACTURER_ID_FK в таблице CAR)
  • АВТОМОБИЛЬ много к одномуCAR_TYPE (CAR_TYPE_ID_FK в таблице CAR)

Что мне нужно, так это отображение в режиме гибернации, которое разрешит все типы автомобилей для данного производителя?

Поэтому, если бы я хотел получить все автомобили, я бы написал

     <set name="cars" inverse="true" cascade="all,delete-orphan" lazy="false" >
        <key property-ref="manufacturerIdFk">
            <column name="MANUFACTURER_ID_FK " precision="22" scale="0" not-null="true"/>
        </key>
        <one-to-many class="foo.bar.Car" />
    </set>

Что мне нужно, это как получить типы автомобилей для производителя?

<set name="carTypes" inverse="true" cascade="all,delete-orphan" lazy="false" >
  ???
</set>

Спасибо и, пожалуйста, не отвечайте, просто получите это от "автомобилей" :) Решение, что я хотел быЯ хотел бы реализовать полностью действительно на спящем отображении, чтобы сделать "тяжелую работу".Еще раз спасибо.

1 Ответ

0 голосов
/ 25 октября 2011

Вы можете напрямую отобразить коллекцию изготовителя. CarTypes как отношение ManyToMany на основе таблицы ассоциации: CAR.

Вот пример (аннотации): В классе Производитель

@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "CAR", joinColumns = @JoinColumn(name = "MANUFACTURER_ID_FK"), 
inverseJoinColumns = @JoinColumn(name = "CAR_TYPE_ID_FK"))
private Set<CarType> carTypes;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...