Обновление различных сущностей jpa из одной HTML-формы (страница jsf)
Я просматривал некоторые образцы, размещенные в Интернете, и все они делают простой CRUD.
1 jsf page = 1 entity = 1 table.
В большинстве случаев это то, что я вижу. но что, если у вас есть только 1 страница JSF с 1 формой, и вам нужно предоставить данные 3 объектам. имея поля формы, такие как имя, компания и хобби.
их значения должны быть отнесены к сущностям
person.name, work.company_name and other_info.hobby.
это делается автоматически с помощью привязки? или нам нужно сделать какое-то ручное присвоение значений? пожалуйста, пролите немного света, я сейчас в некотором замешательстве
1 ответ
Я не уверен, что вижу проблему. Вы можете просто сделать их свойствами одного и того же компонента:
@ManagedBean
@ViewScoped
public class Profile {
private Person person;
private Work work;
private OtherInfo otherInfo;
// ...
}
с
<h:inputText value="#{profile.person.name}" />
<h:inputText value="#{profile.work.companyName}" />
<h:inputText value="#{profile.otherInfo.hobby}" />
Или если Work
а также OtherInfo
есть @OneToOne
отношения с Person
(в реальном мире они, несомненно, имеют):
@ManagedBean
@ViewScoped
public class Profile {
private Person person; // Has in turn Work and OtherInfo properties.
// ...
}
с
<h:inputText value="#{profile.person.name}" />
<h:inputText value="#{profile.person.work.companyName}" />
<h:inputText value="#{profile.person.otherInfo.hobby}" />