Отображение спящего режима - PullRequest
0 голосов
/ 06 мая 2011

Есть два объекта, родительский и дочерний И родитель и потомок реализуют цвет Ребенок и Родитель сопоставляются отношениями один ко многим. Тем не менее, только родительский сопоставляется с цветным столбцом, где цветовой столбец существует только в родительской таблице. Можно ли сопоставить дочерний цвет с родительским с помощью отображения в режиме гибернации?

РОДИТЕЛЬСКИЙ СТОЛ цвет идентификатора

Детский стол id parent_id

Так что я могу использовать следующее в hibernate «child c, где c.colour» без использования псевдонима. Если возможно, приведите несколько примеров, заранее спасибо.

1 Ответ

0 голосов
/ 06 мая 2011

Это не совсем то решение, о котором вы просили, но почему бы не реализовать метод getColour в Child как:

public Color getColor() { return this.parent.getColor(); }

и использование:

Child c where c.parent.color = ?

в HQL?

Таким образом, пользователи ваших доменных объектов будут иметь метод getColor() для класса Child, который он действительно получает из своего parent (как это реализовано в БД). Вы можете скрыть эту косвенность в слое DAO (где находятся запросы HQL). Вы даже можете создать color член Parent класса private и реализовать Child.getColor() с помощью отражения. : -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...