Bonjour,
C'est après beaucoup de test et debug que je soumets ce problème épineux qui affecte tout mon projet.
J'ai constaté une chose très étrange d'ailleurs.Je constate que je n'arrives pas à recuperer les classes en relation mais les champs simple Oui.
Pour être clair car je ne sais pas comment l'expliquer
j'ai par exemple cet entité.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
@Entity
@Table(name = "inscription")
public class Inscription implements Serializable {
/**
* Ajouter pour recuperue le derneir element du bulletin
*/
public static final String FIND_LAST_BULLETIN="Inscription.DernierInsciptionEtudiant";
private static final long serialVersionUID = 1L;
@EmbeddedId
protected InscriptionPK inscriptionPK;
@Column(name = "DateInscription")
@Temporal(TemporalType.TIMESTAMP)
private Date dateInscription;
@Column(name = "Situation")
private String situation;
@JoinColumn(name = "Classe_id", referencedColumnName = "Id",updatable=false,insertable=false)
@ManyToOne(optional = false)
private Classe classe;
@JoinColumn(name = "Regime_id", referencedColumnName = "Id")
@ManyToOne
private Regime codeRegime;
@JoinColumn(name = "Matricule", referencedColumnName = "Matricule", insertable = false, updatable = false)
@ManyToOne(cascade= CascadeType.MERGE,fetch=FetchType.EAGER,optional = false)
private Etudiant etudiant;
public Inscription() {
this.inscriptionPK = new InscriptionPK();
classe = new Classe();
dateInscription=new Date();
}
}
//getter setter |
au niveau de mon xhtml j'ai par exemple ceci
1 2 3 4 5 6 7 8 9 10 11
|
<h:form id="form1">
<p:selectOneMenu id="matricule" value="#{cassociauxcontroller.inscription}" >
<f:selectItem itemLabel="Select" itemValue="#{null}"/>
<f:selectItems value="#{cassociauxcontroller.inscritClasseSelected}" var ="inscrip" itemLabel="#{inscrip.etudiant.matricule}" itemValue="#{inscrip}" />
<p:ajax event="change" listener="#{cassociauxcontroller.allPreviewMontant()}" update="nom,Montant"/>
</p:selectOneMenu>
<h:inputText id="Montant" value="#{cassociauxcontroller.montantcas}" />
<h:inputText id="nom" value="#{cassociauxcontroller.inscription.etudiant.nom}" />
</h:form> |
dans mon Managed Bean cassociauxcontroller j'ai cette ligne de code
paramfrais = paramfraisDao.montanttypefraisetudiant(cassociaux.getIdTypeFrais(),inscription.getEtudiant());
bah voici mes découvertes 
les champs en relations cad
classe,codeRegime,etudiant
sont null sauf l'IDBien que je fasse même une recherche par rapport à cette clé inscriptionPK;c'est toujours pareil.
Mais si j'ai juste ceci
1 2 3 4 5 6 7 8 9 10 11
|
<h:form id="form1">
<p:selectOneMenu id="matricule" value="#{cassociauxcontroller.inscription}" >
<f:selectItem itemLabel="Select" itemValue="#{null}"/>
<f:selectItems value="#{cassociauxcontroller.inscritClasseSelected}" var ="inscrip" itemLabel="#{inscrip.etudiant.matricule}" itemValue="#{inscrip}" />
<p:ajax event="change" update="nom,Montant"/>
</p:selectOneMenu>
<h:inputText id="Montant" value="#{cassociauxcontroller.montantcas}" />
<h:inputText id="nom" value="#{cassociauxcontroller.inscription.etudiant.nom}" />
</h:form> |
bah je constate qu'il update le composant nom sans problème donc
cassociauxcontroller.inscription.etudiant
n'est pas null.
je voudrais comprendre ce qui se passe.car j'ai ce problème dans plusieurs formulaires.Et excusez si le code n'est pas très explicite j'ai copié les bouts de mon code.
Cordialement
Partager