0
我有这2个实体有多对多的关系。Jsf形式多对多关系
@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和控制器吗? –
请参阅更新。我不知道该在这里做什么“应该在这里?”。因为我不知道如何通过表格 – asdlfkjlkj
在连接表中插入一行我认为你的问题与JPA有关,而不是JSF ..应该在这里?应该是stammdatenController。 languageService我猜。但是在保存方法中被戳穿了什么? –