2016-04-16 16 views
-1

Ich schuf eine viele zu viele Beziehung mit einer zusätzlichen Tabelle (REFEREEFOUL) mit den beiden Primärschlüssel Tabelle Foul und Schiedsrichter. Ich kann Daten zu beiden Tabellen hinzufügen, aber die zusätzliche Tabelle erhält keine Werte. Wie kann ich sagen, dass ein Rekord in der Foul Tabelle mit einem Schiedsrichter in der anderen Tabelle zusammenhängt?fügen Sie Daten zu vielen zu vielen relatioship JPA

Beziehung in Schiedsrichterklasse:

@ManyToMany(mappedBy = "refereeList", fetch = FetchType.EAGER) 
private List<Foul> foulList; 

Beziehung in Foul-Klasse:

@JoinTable(name = "REFEREEFOUL", joinColumns = { 
     @JoinColumn(name = "FOULID", referencedColumnName = "ID")}, inverseJoinColumns = { 
     @JoinColumn(name = "REFEREEID", referencedColumnName = "ID")}) 
    @ManyToMany(fetch = FetchType.EAGER) 
    private List<Referee> refereeList; 

die Beziehungen korrekt sind, verwende ich PersistAction.Create für neue Fouls und Schiedsrichter zu schaffen. aber das Problem ist, dass ich kann nicht sie

Link
<h:panelGroup id="display"> 
        <p:panelGrid columns="2" rendered="#{refereeController.selected != null}"> 
         <p:outputLabel value="id" for="id" /> 
         <p:inputText id="id" value="#{refereeController.selected.id}" /> 
         <p:outputLabel refereename" for="refereename" /> 
         <p:inputText id="refereename" value="#{refereeController.selected.refereename}" title="#{bundle.CreateRefereeTitle_refereename}" /> 
         <p:outputLabel value="refereeposition" for="refereeposition" /> 
         <p:inputText id="refereeposition" value="#{refereeController.selected.refereeposition}" /> 
         <p:outputLabel value="gameid" for="gameid" /> 
         <p:selectOneMenu id="gameid" value="#{refereeController.selected.gameid}" > 
          <f:selectItems value="#{gameController.itemsAvailableSelectOne}" 
              var="gameidItem" 
              itemValue="#{gameidItem}"/> 
         </p:selectOneMenu> 
        </p:panelGrid> 
        <p:commandButton actionListener="#{refereeController.create}" value="#{bundle.Save}" update="display,:RefereeListForm:datalist,:growl" oncomplete="handleSubmit(args,'RefereeCreateDialog');"/> 

       </h:panelGroup> 
+0

http://StackOverflow.com/a/19465760/2459449 – Omar

+0

so dass Sie nicht veröffentlichen WIE Sie Daten auf jeder Seite hinzufügen, und wo die Persistenz ist? Huh. Und was JSF mit JPA-Entitäten zu tun hat, weiß ich nicht. Die ENTITY-Objekte sind das einzige, was JPA interessiert –

+0

Ihre Frage ist wirklich verwirrend. JSF ist ein HTML-Formular-basiertes MVC-Framework, das HTTP-Anfragen verarbeiten und HTML-Ausgabe erzeugen kann. JSF hat mit JPA absolut nichts zu tun. Grundsätzlich kann JSF für Sie nur HTML-Formulareingabewerte als Bean-Eigenschaften festlegen. Das ist wirklich alles. Was auch immer Sie mit diesen Modellwerten tun, liegt außerhalb der Verantwortung von JSF. Sie wissen nicht genau, wo genau Ihr Problem liegt. Bitte überprüfen Sie die Modellwerte, nachdem JSF sie eingestellt hat und bevor Sie mit JPA fortfahren. Wenn alles in Ordnung ist, dann bitte JSF aus der Frage entfernen. – BalusC

Antwort

0

nicht richtig Kann überprüfen, diese Sekunde, wenn es einen Unterschied macht, aber aus der Spitze von meinem Kopf versuchen Sie Kaskade = CascadeType.PERSIST (oder CascadeType.ALL) an die Beitreten.