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我猜。但是在保存方法中被戳穿了什麼? –