在 Vaadin 7 中,我试图将我的电话号码组合框绑定到嵌套在 POJO 中的 POJO 列表。例如:我有 PersonVo,其中包含一个 List 电话;PersonCommunicationVo 包含电话号码的值。
我用来绑定 PersonVo 的其他属性的是:
BeanFieldGroup<PersonVo>personBinder = new BeanFieldGroup<PersonVo>(PersonVo.class);
personBinder.setItemDataSource(person);
myFormLayout.addComponent(personBinder.buildAndBind("Firstname", "firstName"));
myFormLayout.addComponent(personBinder.buildAndBind("Country", "country.name"));
这里是 PersonVo:
@Table(name = "CONTACT.T_PERSON")
@Entity
@Audited
public class PersonVo {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="id",updatable = false)
private Long personId;
@Column(name = "FIRSTNAME")
private String firstName;
@Column(name = "LASTNAME")
private String lastName;
@Column(name = "TITLE")
private String title;
...
@OneToMany(fetch = FetchType.LAZY, mappedBy = "personId")
@AuditMappedBy(mappedBy = "personId")
private List<PersonCommunicationVo> **phoneNumbers**;
...
和 PersonCommunicationVo:
@Entity
@Table(name = "CONTACT.PERSON_COMMUNICATION")
@Audited
public class PersonCommunicationVo {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="id",updatable = false)
private Long persCommId;
@Column(name = "PERSON_ID")
private Long personId;
@ManyToOne
@JoinColumn(name = "COM_TYPE_ID")
private CommunicationTypesVo communicationType;
@Column(name = "VALUE")
private String **value**;
我想做的是根据 PersonCommunicationVo 的值将我的电话号码组合框绑定到来自 PersonVo的电话号码列表。但困难在于根据在组合框中选择的内容在列表中找到正确的 PersonCommunicationVo。例如:我在组合框中选择了电话号码 +32 123 456 789,这个值应该映射到 phoneNumbers.get(indexOfSelectedItem).getValue()。为了更新电话号码,添加一个新的等...
谢谢您的帮助!