Обновление различных сущностей jpa из одной html-формы (страница jsf) - PullRequest
1 голос
/ 08 декабря 2011

Я просматривал некоторые образцы, размещенные в Интернете, и все они делают простой CRUD.

1 jsf page = 1 entity = 1 table.

большую часть времени это то, что я вижу.но что, если у вас есть только 1 страница JSF с 1 формой, и вам нужно предоставить данные для 3 объектов.имея поля формы, такие как имя, компания и хобби.

их значения должны быть указаны для сущностей

person.name, work.company_name and other_info.hobby.

это делается автоматически посредством привязки?или нам нужно сделать какое-то ручное присвоение значений?пожалуйста, пролите немного света, я сейчас немного растерялся

1 Ответ

1 голос
/ 08 декабря 2011

Я не уверен, что вижу проблему. Вы можете просто сделать их свойствами одного и того же компонента:

@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}" />
...