2016-07-14 2 views
0

Я хотел сопоставить двунаправленную связь OneToMany. Поскольку приложение отвечает за поддержание сторон отношений, я написал код в модельных объектах для этой цели, аналогичный коду, предложенному в этом разделе: Wiki Java Persistence pageJPA OneToMany обслуживание отношений

Когда я использую свои сущности, я вызываю метод setOwner телефона, чтобы сделать Ассоциация. Затем я сохраняю/объединяю объект Phone.

Результатом является то, что я вижу много вариантов объектов телефона, потому что мои отношения ЛАЗИ.

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

Итак, нет ли способа избежать выбора и сохранить двунаправленный?

ответ

0

Итак, у одного владельца много телефонов? В этом случае, я полагаю, вы говорите, что, когда вы звоните owner.getPhones(), что вы видите что-то вроде:

owner ->has phone->has owner ->has phone ->has owner ->has phone -> 

В больших графах, где телефон имеет (я ищу для примера ...) несколько сим-карт, многократного случаев и т. д., это может привести к большим наборам результатов. Помните, что они являются экземплярами объектов, но являются только прокси.

Да, если вы находитесь в большом количестве, это может повлиять на производительность. ИМО лучше будет смешивать JPA с HSQL или Критерии. Я рекомендую http://uaihebert.com/easycriteria-3-0-new-features/ JPA отлично подходит во многих случаях, в некоторых случаях прямое применение к реляционным отношениям более уместно.

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