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 :

[Spring][Hibernate] probleme avec getHibernateTemplate et recuperation de la session


Sujet :

Spring Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2004
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 38
    Points : 33
    Points
    33
    Par défaut [Spring][Hibernate] probleme avec getHibernateTemplate et recuperation de la session
    Bonjour je debute en hibernate sur spring et je ne comprend pas pourquoi


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    			org.hibernate.SessionFactory fact = getHibernateTemplate().getSessionFactory();
    			org.hibernate.Session sess = this.getSessionFactory().getCurrentSession();
    Me renvoit une erreur de se type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here
    alors que par exemple , fonctionne tres bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    			getHibernateTemplate().get();
    A priori en cherchant sur des forums US j'ai trouvés une histoire de transaction proxy
    Mais le problême est qu'il faut que j'annonce mon bean dans cette transaction et ne peut pas definir tout mes beans sur ce type de proxy.


    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
     
    	<bean id="transactionInterceptor"
    		class="org.springframework.transaction.interceptor.TransactionInterceptor">
    		<property name="transactionManager" ref="transactionManager" />
    		<property name="transactionAttributes">
    			<props>
    				<prop key="*">PROPAGATION_REQUIRED</prop>
    			</props>
    		</property>
    	</bean>
     
    	<bean id="autoProxyCreator"
    		class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
    		<property name="interceptorNames">
    			<list>
    				<idref local="transactionInterceptor" />
    			</list>
    		</property>
    		<property name="beanNames">
    			<list>
    				<idref local="daoFerie" />
    			</list>
    		</property>
    	</bean>
    Donc je cherche a faire récupérer la session pour pouvoir utiliser le setFirstResult et le setMaxResult sur chacune de mes requetes pour un affichage de liste avec un systeme de page.


    Si quelqu'un a une solution a mon probleme ou une façon élégante d'utiliser setFirstResult et le setMaxResult avec getHibernateTemplate() je suis preneur.


    voila mon applicationcontext
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
     
    <beans>
    	<bean id="sessionFactory"
    		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    		<property name="configLocation">
    			<value>file:src/hibernate.cfg.xml</value>
    		</property>
    	</bean>
     
    	<bean id="transactionManager"
    		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    		<property name="sessionFactory">
    			<ref local="sessionFactory" />
    		</property>
    	</bean>
    	<bean id="daoFerie"
    		class="fr.test.testFerie">
    		<property name="sessionFactory">
    			<ref local="sessionFactory" />
    		</property>
    	</bean>
    </beans>
    Merci d'avance a celui qui me viendra en aide

  2. #2
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Points : 6 301
    Points
    6 301
    Par défaut
    J'avoue ne pas voir le problème .. Je ne bosse jamais avec les TransactionInterceptor mais avec les TransactionProxyFactoryBean.

    Mais en pratique, ca devrait etre la meme chose.

    Cela dit, je ne comprends pas ce que tu veux dire par :


    Mais le problême est qu'il faut que j'annonce mon bean dans cette transaction et ne peut pas definir tout mes beans sur ce type de proxy.



    Par contre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <bean id="autoProxyCreator"
    		class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
    		<property name="interceptorNames">
    			<list>
    				<idref local="transactionInterceptor" />
    			</list>
    		</property>
    		<property name="beanNames">
    			<list>
    				<idref local="daoFerie2" />
    			</list>
    		</property>
    	</bean>
    Je vois bien le daoFerie dans ton contexte, mais pa le daoFerie2.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2004
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 38
    Points : 33
    Points
    33
    Par défaut
    Oups je suis une grosse truffe
    <idref local="daoFerie2" />
    je le remplace de suite par <idref local="daoFerie" />


    bas en faite mon problême c'est que je voulais faire du
    org.hibernate.SessionFactory fact = getHibernateTemplate().getSessionFactory();
    org.hibernate.Session sess = this.getSessionFactory().getCurrentSession();
    mais il me renvoie null pour la session alors que les requete sur getHibernateTemplate() fonctionne.

    Mais le problême est qu'il faut que j'annonce mon bean dans cette transaction et ne peut pas definir tout mes beans sur ce type de proxy.
    l'obligation de reecrire mon bean dans le proxy de transaction comme l'exemple avec le daoFerie.


    J'ai vu plein d exemple avec le getCurrentSession sans probleme alors que moi sa me sort une erreur.


    Sinon qu'est ce que sa donne les TransactionProxyFactoryBean a peu pres ?
    je débute ( 2 eme projet en spring , 1 er en hibernate ( ibatis sur le premier projet spring))

Discussions similaires

  1. [hibernate] probleme avec un champ DATE
    Par laurent.c123 dans le forum JDBC
    Réponses: 2
    Dernier message: 12/01/2007, 11h36
  2. Réponses: 6
    Dernier message: 24/05/2006, 22h51
  3. Problème avec un .doc récupéré d'une BDD MySQL
    Par sansouna24 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 21/05/2006, 11h19
  4. [EJB3][HIBERNATE] Probleme avec select max
    Par kristof_machin dans le forum Hibernate
    Réponses: 2
    Dernier message: 26/04/2006, 13h05
  5. [Tableaux] probleme avec tableau a recupere
    Par twixster dans le forum Langage
    Réponses: 14
    Dernier message: 16/02/2006, 17h50

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