【发布时间】: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);
但这意味着表单无法控制提交。
约翰。
【问题讨论】: