【发布时间】:2016-09-30 04:20:49
【问题描述】:
我有这两个具有多对多关系的实体。
@Entity
public class Stammdaten {
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private List<Language> languages = new ArrayList<Language>();
}
@Entity
public class Language {
@ManyToMany(mappedBy = "languages")
private List<Stammdaten> stammdatens = new ArrayList<Stammdaten>();
}
我有一个已保存在语言表中的 20 种语言的列表。现在,当用户填写 stammdaten 表单时,用户从下拉列表中选择 20 种语言中的一种。然后在提交表单时,应更新 stammdaten 和语言的连接表。我该怎么做?
目前我有这个表格
<h:form id="stammdaten">
<h:message for="RegisterGroupPanel" style="color:red;" />
<h:panelGrid columns="3" id="RegisterGroupPanel">
<h:outputLabel for="firstName" value="First name : " />
<h:inputText id="firstName" value="#{stammdatenController.stammdaten.firstName}" /> <br />
<h:selectOneMenu value="#{what should be here??}">
<f:selectItems value="#{languageController.list()}" var="language" itemValue="#{language.id}" itemLabel="#{language.name}" />
</h:selectOneMenu>
<h:commandButton action="#{stammdatenController.create()}" value="Send" />
我不明白上面代码what should be here???这里的值应该是什么
编辑:控制器
@ManagedProperty("#{languageService}")
LanguageService languageService;
private Language language = new Language();
private List<Language> languages;
public void create(){
stammdatenService.save(stammdaten);
FacesContext fc = FacesContext.getCurrentInstance();
ApplicationHelpers.setSuccessMessage("Application created successfully successfully", null);
}
【问题讨论】:
-
但是你在 stammdatenController.create() 有什么?关于“这里应该有什么??”您只是将其设置为托管 bean 的属性?你能告诉我们你的支持 bean 和控制器吗?
-
请查看更新。我不知道在这里做什么“这里应该有什么??”。因为我不知道如何通过表单在连接表中插入一行
-
我认为您的问题与 JPA 相关,而不是 JSF .. 这里应该是什么?应该是 stammdatenController。我猜是语言服务。但是 save 方法中的 stammdaten 是什么?