【问题标题】:Vaadin 7, JPA 2 and form bindingVaadin 7、JPA 2 和表单绑定
【发布时间】:2018-06-15 13:56:49
【问题描述】:

我有两个数据库表和相应的实体类:-

考试班

Entity
@Table(name="exam", schema="xyz")
...
private int examid;
private String examname;

@ManyToOne
@JoinColumn(name="startedby")    
private User startedByUser;

...

public String getStartedByName() {
        if (startedByUser != null){
            return (startedByUser.getDesign()+' '+startedByUser.getFname()+' '+startedByUser.getLname()).trim();
        }else{      
            return "N/A";
        }
}

...

用户类

Entity
@Table(name="user", schema="xyz")
...
private int userid;
private String username;
private String fname;
private String lname;

...

当我尝试将这些绑定到 Vaadin 表单并使用 startedByUser 集打开现有考试时,一切正常,我可以显示开始考试的用户。

startedByName = (TextField) fieldGroup.buildAndBind("STARTED BY", "startedByName");

但是,如果这是一个新的考试,startedBy 用户将为空,直到有人点击“开始”按钮。此按钮的 onClick 处理程序应将 startedByUser 值设置为当前用户(我将其保存在本地用户对象中),并且表单应相应地显示 startedByName 值。

我似乎无法使用表单进行设置,这给我留下了一个大问题。

有没有人知道如何实现这一目标?

我知道我可以做到以下几点:-

examItem.getItemProperty("startedByUser").setValue(user);

但这意味着表单无法控制提交。

约翰。

【问题讨论】:

    标签: jpa vaadin


    【解决方案1】:

    目前,我使用了一个绑定到表单的组合框。这样,我可以使用相应的用户名设置 userno 和组合框更新。不确定这是否是最佳选择?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-11
      相关资源
      最近更新 更多