Отображение одной и той же сущности на себя как коллекцию - PullRequest
3 голосов
/ 27 сентября 2011

Хорошо, скажем, у меня есть сущность "Person", которая должна иметь свойство "Person" в качестве свойства (скажем, друзья), так как это соединение "многие ко многим", если бы я создал эту схему, используя SQL (который янет, я использую hbm.ddl.auto, чтобы сделать это для меня) я, вероятно, сделал бы другую таблицу, содержащую 2 столбца с 2 идентификаторами (по 1 для каждого друга). Однако я не уверен, как аннотировать это вhibernate, я сделал это:

class PersonEntity {

.
.

@ElementCollection
private List<PersonEntity> friends ;

.
.
}

Проблема в том, что я не уверен, что это лучший способ ... например, я "думаю", что всякий раз, когда я добавляю друга в список и сохраняю егобудет вставлена ​​как следующая строка в таблицу, и, поскольку я не могу индексировать это поле, я предполагаю, что получение данных будет неэффективным.Можете ли вы предложить лучшие способы решения этой проблемы?

1 Ответ

1 голос
/ 27 сентября 2011

Вы ищете @ManyToMany и @JoinTable.

Api Doc ElementCollection говорит:

Определяет коллекцию экземпляров базового типа или встраиваемого класса

У вас есть коллекция экземпляров сущностей. См. http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/#eentity-mapping-association-collection-manytomany как использовать эти аннотации.

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