Обновление различных сущностей 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}" />
Другие вопросы по тегам