我遇到使用EntityItem将成员字段绑定到字段组的问题。
我从一个子类创建一个EntityItem,其中某些字段构成了超类。
Class<?> dataClass = navigator.getNavigationList().get(navigator.getActualNavigation()).getDataClass();
Constructor<?> pConstructor = dataClass.getConstructor();
pv = (ProduktVereinbarung)pConstructor.newInstance();
eI = fPPC.createEntityItem(pv);
超类:
@Entity
@Table(name="PRODUKT_VEREINBARUNG")
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name="PV_TYPE", discriminatorType = DiscriminatorType.STRING)
public class ProduktVereinbarung implements Serializable {
@Column(name="PV_ID")
protected int id;
@Column(name="PV_FK_PK_ID")
protected int finanzProduktKlasse;
@Column(name="PV_BEZEICHNUNG")
protected String bezeichnung;
......
子类:
@Entity
@Table(name="PV_EDELMETALL")
@DiscriminatorValue("PVEdelMetall")
public class PVEdelMetall extends ProduktVereinbarung implements Serializable {
@Column(name="PVEM_KAUFKURS")
protected Double kaufKurs;
@Column(name="PVEM_MENGE")
protected int menge;
....
}
当我尝试在我的窗口类中绑定成员字段时,只有超类的成员字段是绑定 - 而不是子类的字段:
public void setEntityItem(Item item) {
this.fieldGroup.setItemDataSource(item);
this.fieldGroup.bindMemberFields(this);
}
请有人帮忙吗
答案 0 :(得分:1)
为了调试此问题而不是JPAController尝试使用BeanItem,您可以通过将实体实例传递给其构造函数来实例化它。 如果它有效,那么你确定它与JPAContainer有关。然后尝试使用bind()和buildAndBind()方法(https://vaadin.com/book/vaadin7/-/page/datamodel.itembinding.html)绑定特定列,请查看此示例,http://dev.vaadin.com/browser/svn/addons/JPAContainer/trunk/jpacontainer-itest/src/main/java/com/vaadin/addon/jpacontainer/itest/fieldgroup/FieldGroupTest.java