IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

HibernateTemplate. Sauvegarde et récupération d'objets. [Data]


Sujet :

Spring Java

  1. #1
    Invité
    Invité(e)
    Par défaut HibernateTemplate. Sauvegarde et récupération d'objets.
    Bonjour à tous,

    Après avoir expliqué mon problème sur le forum hibernate et n'ayant toujours pas de réponses, je me dis que le problème viens peut-être de mon utilisation de HibernateTemplate. Je m'en remet donc à vous..

    J'ai les objets suivants :
    - 'Resource(String url, Set<Role> roles)'
    - 'Role(String name)'
    Une 'Resource' contient un Set de 'Role's. Un 'Role' n'a aucune référence sur les 'Resource's mais peut-être utilisé par plusieurs 'Resource's.

    Tout se passe bien lorsque je sauve une 'Resource' et lorsque je sauve un 'Role'.
    Lorsque je fais l'association 'maResource.addRole(unRole)' et que je sauve, tout semble se passer correctement également sauf que ma table de relation reste vide.
    Si j'ajoute un nouveau (non sauvé) 'Role' pour une 'Resource' et que je sauve cette 'Resource' le 'Role' n'est pas sauvé.
    La console ne me dis rien d'autre que du debug, mes tables sont bien créées par Hibernate avec les bonnes colonnes. Je ne vais vraiment pas ou est mon erreur.

    Tous mes daos étendent la même classe qui étend elle-même HibernateTemplate et dont voici les méthodes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    public PK save(T object) throws DataAccessException {
    		logger.debug("Saving %s '%s'.", type.getSimpleName(), object);
    		PK key = (PK) getHibernateTemplate().save(object);
    		logger.debug("Object '%s' saved as %s with key '%s'.", object, type.getSimpleName(), key);
    		return key;		 
    	}
     
    	/** 
             * Retrieve an object that was previously saved to the storage using the 
             * indicated key as primary key.
             * @throws <tt>be.gervaisb.sics.exceptions.DataAccessException</tt>
             */
    	@SuppressWarnings("unchecked")
    	public T get(PK key) throws DataAccessException {
    		logger.debug("Getting %s with key '%s'.", type.getSimpleName(), key);
    		T object = (T) getHibernateTemplate().get(type, key);
    		getHibernateTemplate().flush();
    		logger.debug("Return '%s' as %s for key '%s'", object, type.getSimpleName(), key);
    		return object;
    	}
     
    	/** Save changes made to an object
             * @throws <tt>be.gervaisb.sics.exceptions.DataAccessException</tt> 
             */
    	public void update(T object) throws DataAccessException {
    		logger.debug("Updating %s '%s'.", type.getSimpleName(), object);
    		getHibernateTemplate().update(object);
    		getHibernateTemplate().flush();
    	}
    > Et mon code de test (chargement, etc..)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    public static void main(String[] args) {
     
    		org.springframework.core.io.Resource resource = new FileSystemResource("./src/daoContext.xml");
    		BeanFactory factory = new XmlBeanFactory(resource);
    		DaoFactory daoFactory = (DaoFactory) factory.getBean("daoFactory");
     
    		System.out.println("\n\n\n DEBUT \n\n\n");
     
    		Resource login = new Resource("login.html");
    		daoFactory.getResourcesDao().save(login);
    		System.out.println("Login saved \n\n");
     
    		Role roleAnon = new Role("Anonymous");	
    		daoFactory.getRoleDao().save(roleAnon);
    		System.out.println("Role saved \n\n");
     
    		roleAnon = daoFactory.getRoleDao().get("Anonymous");
    		login = daoFactory.getResourcesDao().get("login.html");
    		System.out.println("Objects reloaded \n\n");
     
    		login.addRole(roleAnon);		
    		daoFactory.getResourcesDao().update(login);
    		System.out.println("\n\n Get the resource :\n\t"+daoFactory.getResourcesDao().get("login.html"));
     
    	}
    Le fichier de log est en attachement.

    Si l'un d'entre vous à une idée sur la cause de mon problème.. Merci

    Pour ceux qui en voudraient plus encore, la discussion originelle est ici : http://www.developpez.net/forums/sho...d.php?t=552065


    Merci
    Fichiers attachés Fichiers attachés
    Dernière modification par Robin56 ; 05/08/2013 à 13h17. Motif: Ajout du préfixe

  2. #2
    Invité
    Invité(e)
    Par défaut
    Voilà, c'est résolu. L araison se trouve dans le POst d'origine pour ceux que ça intéresse..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Events + Récupération d'objet
    Par seblo_scoqi dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 08/12/2006, 10h21
  2. JTable, tri et récupération des objets du tablemodel
    Par willowII dans le forum Composants
    Réponses: 1
    Dernier message: 07/12/2006, 20h00
  3. [Sécurité] Problème de récupération d'objet sérialisé
    Par Mysticlolly dans le forum Langage
    Réponses: 6
    Dernier message: 31/03/2006, 14h16
  4. [hibernate]Problème de récupération d'objet...
    Par roxx62 dans le forum Hibernate
    Réponses: 1
    Dernier message: 07/07/2005, 11h36
  5. [VB6] Sauvegarder une collection d'objets
    Par Sayagh dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 19/09/2003, 11h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo