Problème de Mapping Hibernate
Bonjour,
je m'excuse si je m'infiltre dans cette discussion mais parce que je cherche une solution depuis 3 jours et je vous serais très reconnaissant d'accépter de m'aider.
....
j'ai un problème avec un mapping particulier,
voila j'ai une classe mère et une classe fille,
la classe fille à une association many to many avec une autre ce qui mène à une table d'association, bon j'ai fait le nécessaire pour le mapping de l'héritage et ça fonctionne, mais lorsque je veux récupérer un objet de la classe fille afin de l'ajouter à la table d'association un enregistrement (dossierIncomplet-motifRejet) :
Session session = HibernateUtil.currentSession();
Transaction tx = session.beginTransaction();
DossierIncomplet dosInc = (DossierIncomplet)session.load(DossierIncomplet.class, idDosIncomplet);
MotifRejet raisonRej = (MotifRejet)session.load(MotifRejet.class,idMotif);
dosInc.getMotifRejet().add(raisonRej);
tx.commit();
sachant que :
la classe mère= Dossier
La classe fille= DossierIncomplet
MotifRejet est la classe avec association many to many avec la classe fille DossierIncomplet.
Malheureusement j'ai le message Hibernate:
org.hibernate.PropertyAccessException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of ma.rami.hibernate.model.DossierIncomplet.setNumeroDossier
merci de m'aider
Problème Hibernate suite :
Citation:
Envoyé par
JeitEmgie
il y a un problème lié à la méthode "setNumeroDossier" dans le proxy que génère Hibernate via CGLIB…
vérifier ce que vous y faites… comment est-elle déclarée… ?
poster le code source de cette méthode pourrait aider…
Merci de votre réponse,... j'ai tant charcher mains en vain ,
je vous donne les Classes suivante telle que je les ai déclarées:
public class Dossier
{
protected java.lang.Long numeroDossier;
protected java.lang.String libelleDossier;
protected java.util.Date dateReception;
protected Affilie affilie;
protected TypeDossier typeDossier;
protected Conseiller conseiller;
public Dossier() {
// TODO Auto-generated constructor stub
}
public java.lang.Long getNumeroDossier() {
return numeroDossier;
}
protected void setNumeroDossier(java.lang.Long numeroDossier) {
this.numeroDossier = numeroDossier;
}
public java.lang.String getLibelleDossier() {
return libelleDossier;
}
public void setLibelleDossier(java.lang.String libelleDossier) {
this.libelleDossier = libelleDossier;
}
public java.util.Date getDateReception() {
return dateReception;
}
public void setDateReception(java.util.Date dateReception) {
this.dateReception = dateReception;
}
public Affilie getAffilie() {
return affilie;
}
public void setAffilie(Affilie affilie) {
this.affilie = affilie;
}
public Conseiller getConseiller() {
return conseiller;
}
public void setConseiller(Conseiller conseiller) {
this.conseiller = conseiller;
}
public TypeDossier getTypeDossier() {
return typeDossier;
}
public void setTypeDossier(TypeDossier typeDossier) {
this.typeDossier = typeDossier;
}
}
Ensuite
public class DossierIncomplet extends Dossier
{
private Set<MotifRejet> motifRejet= new HashSet<MotifRejet>();
public DossierIncomplet() {
// TODO Auto-generated constructor stub
}
public Set<MotifRejet> getMotifRejet() {
return motifRejet;
}
public void setMotifRejet(Set<MotifRejet> motifRejet) {
this.motifRejet = motifRejet;
}
}
en fin :
public class MotifRejet
{
private java.lang.Long idMotif;
private java.lang.String libelleRejet;
public MotifRejet() {
// TODO Auto-generated constructor stub
}
public java.lang.Long getIdMotif() {
return idMotif;
}
private void setIdMotif(java.lang.Long idMotif) {
this.idMotif = idMotif;
}
public java.lang.String getLibelleRejet() {
return libelleRejet;
}
public void setLibelleRejet(java.lang.String libelleRejet) {
this.libelleRejet = libelleRejet;
}
}