Как разработать простую JSP для управления ассоциацией ManyToOne Hibernate - PullRequest
0 голосов
/ 07 марта 2012

У меня есть Счет и Поставщик Спящий объект.

Один счет-фактура имеет только одного поставщика.

Один поставщик может быть связан со многими счетами.

В классе Invoice у меня есть поставщик с аннотацией @ ManyToOne.

Все хорошо работает в бэкэнд-слое, но .... как насчет внешнего интерфейса?

Я имею в виду, мой invoices.jsp действительно прост. У меня есть форма, в которой вы можете указать сумму и все данные счета, а также <select><option value="${supplierid}>supplier description</option></select>.

В методе POST моего контроллера я получаю все эти данные, создаю новый счет, заполняю его свойства и что я могу сделать с идентификатором поставщика ??

К настоящему времени я запрашиваю у поставщика SupplierService этот поставщик с этим идентификатором (ключом), присваиваю его свойству «supplier» моего нового счета и сохраняю его в спящем режиме.

Это лучшая практика или у вас есть лучшие идеи? Спасибо

Ответы [ 2 ]

1 голос
/ 07 марта 2012

session.load(Supplier.class, id); лучше, чем запрашивать, если вы хотите удовлетворить только ссылку, потому что он не создаст туда-обратно в db для получения поставщика, он вернет прокси, который удовлетворяет ссылке.

0 голосов
/ 07 марта 2012

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

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