我有两个数据库表和相应的实体类: -
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");
但是,如果这是一个新的考试,那么,在有人点击“已开始”的情况下,startsBy用户将为空。按钮。此按钮的onClick处理程序应将startedByUser值设置为当前用户(我在本地用户对象中保存),表单应相应地显示startedByName值。
我似乎无法使用表单进行设置,这给我留下了很大的问题。
有没有人有任何想法如何实现这一目标?
我知道我可以做到以下几点: -
examItem.getItemProperty("startedByUser").setValue(user);
但这意味着表单无法控制提交。
约翰。
答案 0 :(得分:-1)
目前,我使用了一个绑定到表单的组合框。这样,我可以使用相应的用户名设置userno和组合框更新。不确定这是否是最佳选择?