Я работаю с JSF 2.1, Netbeans 7.0.1, Glassfish 3.1.1, JPA + EJB.
Например, у меня есть класс сущностей с именем User, и он имеет ссылку (отношение «многие к одному») с классом сущностей UserType.
Таблица user_type, связанная с сущностью UserType, уже загружена всеми возможными типами пользователей, и в эту таблицу не предполагается добавлять никакие данные. Данные из таблицы user_type используются только для выбора.
В одной из форм я прошу пользователя выбрать UserType для пользователя, создаваемого с помощью тега h: selectOneListBox. В компоненте поддержки я создаю новый объект UserType, устанавливаю для него выбранный идентификатор и помещаю UserType в класс сущности User. Однако все остальные поля в созданном объекте UserType пусты.
Мой вопрос заключается в том, что когда я сохраняю пользователя в базе данных, JPA «поймет», что тип пользователя с таким идентификатором, на который ссылается объект пользователя, уже существует в базе данных и просто обновит (объединит) существующую запись, а не попытается создать новый. Или мне нужно предварительно загрузить нужный объект UserType из базы данных по его идентификатору, а затем поместить его в User и попросить JPA обновить UserType?