Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
767 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  save hibernate

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

save hibernate

n°1620932
puisquetur​epondspas
Posté le 09-10-2007 à 11:19:23  profilanswer
 

bonjour je n'arrive pas à enregistrer mon object, j'ai pas d'erreur, je maitrise pas le mapping hibernate je pense que ça vient de là, adresMer n'est pas vide, les autres fonctions d'enregistrement et de session fonctionne pour les autres objets
 
Voici mon code
 
Session session = HibernateUtil.currentSession();
HibernateUtil.demarreSession().beginTransaction();
 
                          Adresse adresEnf = new Adresse();
  adresEnf.setMalade(enfmal);
  adresEnf.setAd_pycode(adresMer.getAd_pycode());
  adresEnf.setAd_nom(adresMer.getAd_nom());
  adresEnf.setAd_prenom(adresMer.getAd_prenom());
  adresEnf.setAd_cpt(adresMer.getAd_cpt());
  adresEnf.setAd_typ(adresMer.getAd_typ());      
  adresEnf.setAd_lib1(adresMer.getAd_lib1());
  adresEnf.setAd_lib2(adresMer.getAd_lib2());
  adresEnf.setAd_lib3(adresMer.getAd_lib3());
  adresEnf.setAd_titcode(adresMer.getAd_titcode());
  adresEnf.setVille(adresMer.getVille());
  adresEnf.setAd_pacode(adresMer.getAd_pacode());
  adresEnf.setAd_tel1(adresMer.getAd_tel1());
  adresEnf.setAd_tel2(adresMer.getAd_tel1());
  adresEnf.setAd_tel3(adresMer.getAd_tel1());
  adresEnf.setAd_hdeb(adresMer.getAd_hdeb());
  adresEnf.setAd_dfin(adresMer.getAd_dfin());
  adresEnf.setAd_cptprec(adresMer.getAd_cptprec());
  adresEnf.setAd_cacode(adresMer.getAd_cacode());
  adresEnf.setAd_datmaj(adresMer.getAd_datmaj());
  adresEnf.setAd_utilmaj(adresMer.getAd_utilmaj());
 
  try {
   Session session = HibernateUtil.getUpdateSession();
               session.saveOrUpdate(adresEnf);
  }
  catch (Exception e) {
   TransactionUtil.rollback();
   Log.getLog(this).error("AdresseSql" );
   throw e;
  }
 
                         finally {
                          Session session = HibernateUtil.currentSession();
   
  // si la session existe et est bien ouverte
  if(session != null && session.isOpen())
  {
   try
   {
    // si la transaction est encore valide, on la commit
    if(session.getTransaction() != null && session.getTransaction().isActive())
     session.getTransaction().commit();
   }
   finally
   {
    // on ferme la session
    HibernateUtil.closeSession();
   }
  }
                          }
 
et voici  mon mapping
 
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
      "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 
<hibernate-mapping package="fr.cerner.modele">
 
 <class name="Adresse" table="ADRESSE">
   
  <composite-id>
   <key-many-to-one name="malade" column="AD_MANUMDOS"/>
   <key-property name="ad_cpt" column="AD_CPT"/>
  </composite-id>
 
  <property name="ad_typ" column="AD_TYP" type="fr.cerner.sql.type.Char"/>
  <property name="ad_lib1" column="AD_LIB1"/>
  <property name="ad_lib2" column="AD_LIB2"/>
  <property name="ad_lib3" column="AD_LIB3"/>
  <many-to-one name="ad_titcode" column="AD_TITCODE"/>
  <many-to-one name="ville" class="fr.cerner.modele.Ville" lazy="false">
   <column name="AD_VNCODE"/>
   <column name="AD_VNCODEDIST"/>
  </many-to-one>
   
  <property name="ad_pacode" column="AD_PACODE" type="fr.cerner.sql.type.Char"/>
  <property name="ad_pytype" column="AD_PYTYPE" type="fr.cerner.sql.type.Char"/>
  <property name="ad_pycode" column="AD_PYCODE" type="fr.cerner.sql.type.Char"/>
  <property name="ad_tel1" column="AD_TEL1" type="fr.cerner.sql.type.Char"/>
  <property name="ad_tel2" column="AD_TEL2" type="fr.cerner.sql.type.Char"/>
  <property name="ad_tel3" column="AD_TEL3" type="fr.cerner.sql.type.Char"/>
  <property name="ad_hdeb" column="AD_HDEB" type="fr.cerner.sql.type.DateAxya"/>
  <property name="ad_dfin" column="AD_DFIN" type="fr.cerner.sql.type.DateAxya"/>
  <property name="ad_cptprec" column="AD_CPTPREC"/>
  <many-to-one name="ad_cacode" column="AD_CACODE"/>
  <property name="ad_datmaj" column="AD_DATMAJ"/>
  <many-to-one name="ad_utilmaj" column="AD_UTILMAJ"/>
  <property name="ad_nom" column="AD_NOM"/>
  <property name="ad_prenom" column="AD_PRENOM"/>
 
 </class>
 
</hibernate-mapping>
 
 Merci

mood
Publicité
Posté le 09-10-2007 à 11:19:23  profilanswer
 

n°1620960
puisquetur​epondspas
Posté le 09-10-2007 à 11:57:31  profilanswer
 

en debugant j'ai vu ceci
failed to lazily initialize a collection of role: fr.cerner.modele.Malade.adresses, no session or session was closed pour la ligne Adresse adresEnf = new Adresse();

n°1622875
puisquetur​epondspas
Posté le 12-10-2007 à 12:55:27  profilanswer
 

j'ai resolu le probleme rien à voir avec "failed to lazily initialize a collection of role"  
C'était au niveau de la base, une erreur de données, un trigger se déclenche après le commit de hibernate et celui ci était faux si une table n'était par rempli.
Je voyais bien mon insert dans la console mais aucune erreur
voila


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  save hibernate

 

Sujets relatifs
Gestion lock optimiste avc Hibernate et archi n-tiersaide JSTL et Hibernate
Fenêtre generées "load" "save" automatiquement en pythonQT # Resolu #[Hibernate SQL] Rownum et Order by
[Hibernate] forcer le troncage des champs depassant les 255 chars.[HIBERNATE] Table d'association avec element !! Au Secours :D
[HIBERNATE] Table d'association avec element !! Au Secours :D[Hibernate]Migration vers 3.1 et "could not instantiate id generator"
[hibernate] auto create & MEDIUMTEXTTable sans primary key avec Hibernate/JAVA
Plus de sujets relatifs à : save hibernate


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR