2015-12-28 2 views
-1

У меня есть две таблицы в моей базе данных: LOCALIDAD и CAJA. Эти таблицы имеют отношение «многие-многие», поэтому sql-сервер создал таблицу для представления этого отношения: LOCALIDAD_CAJA. В настоящее время я использую hibernate в моем проекте, но hibernate не отображает эту таблицу, LOCALIDAD_CAJA. Мне нужен запрос в список CAJA в зависимости от LOCALIDAD ID, так это выглядит следующим образом:Список данных из таблицы, созданной многими для многих отношений hibernate

select * from caja C, LOCALIDAD_CAJA LC, LOCALIDAD L 
where C.CCAJA = LC.CCAJA 
AND L.CLOCALIDAD = LC.CLOCALIDAD 
AND L.CLOCALIDAD = 1 

Но в HQL я не могу получить доступ к таблице LOCALIDAD_CAJA и мне нужно, чтобы сделать это правильно сделать матч.

Заранее спасибо

EDIT: Я не использую аннотаций

ответ

1

Если вы не используете аннотации можно добавить дополнительное поле к вашим многим ко многим таблицы, как изменить дату или что-то, так что, поскольку таблица теперь имеет свой собственный атрибут, кроме идентификаторов, полученного многие, для многих отношений спящий режим будет автоматически отображать их.

+1

Действительно, спящий режим правильно отобразил его. Но что, если мне не нужно дополнительное поле на столе? Каким образом я могу скрыть hibernate таблицу без использования аннотаций? –

+1

Какой из них лучше? Использование hbm или аннотаций? –

0
  1. Использование @ManyToMany с @JoinTable аннотацию

    Вы можете использовать @ManyToMany ассоциацию от LOCALIDAD к CAJA с @JoinTable. Вы можете указать name таблицы соединений и имена внешних ключей с joinColumns и inverseJoinColumns.

  2. Используя дополнительный стойкий

    Вы можете добавить стойкое к таблице LOCALIDAD_CAJA (для примера JoinLocaliCaja) и использовать @OneToMany ассоциации из LOCALIDAD к JoinLocaliCaja и @OneToMany от CAJA к JoinLocaliCaja.

Смежные вопросы