Vaadin 7,JPA 2和表格绑定

时间:2018-06-15 13:56:50

标签: jpa vaadin

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

考试成绩

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";
        }
}

...

USER Class

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");

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

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

有没有人有任何想法如何实现这一目标?

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

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

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

约翰。

1 个答案:

答案 0 :(得分:-1)

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