多対多リレーションシップを持つ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の言語の1つを選択します。フォームが送信されると、stammdatenとlanguageの結合表を更新する必要があります。どうやってやるの?
現在、私はこのフォーム
<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のプロパティに設定するだけです。バッキングビーンとコントローラを見せてくれますか? –
アップデートをご覧ください。私はここで何をすべきかわからない "何がここにあるのだろうか?"フォームを使ってジョインテーブルに行を挿入する方法がわからないので、 – asdlfkjlkj
あなたの質問はJPAではなく、JSFに関連していると思います。 stammdatenControllerにする必要があります。私はlanguageServiceと思います。しかし、どのような方法で保存方法をstammdatenですか? –