Bonsoir,
Je suis un peu paumé avec le Transaction manager. J'utilise Spring 2.5.5 et Hibernate 3.3.2
Pour le moment, j'ai ce code qui fonctionne :
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 <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" > <property name="driverClassName" value="org.hsqldb.jdbcDriver"/> <property name="url" value="jdbc:hsqldb:mem:/openpronosdb"/> <property name="username" value="sa"/> <property name="password" value=""/> </bean> <bean id="mySessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="myDataSource"/> <property name="mappingResources"> <list> <value>org/simon/openpronos/model/User.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop> <prop key="hibernate.show_sql">false</prop> <prop key="hibernate.current_session_context_class">thread</prop> </props> </property> </bean> <bean id="securityDao" class="org.simon.openpronos.dao.SecurityDaoImpl"> <property name="sessionFactory" ref="mySessionFactory"/> </bean>
Dans ma classe SecurityDaoImpl j'ai ce bout de code :
Si je ne mets pas le session.beginTransaction(); j'ai une exception org.hibernate.HibernateException: createQuery is not valid without active transaction Je pensais, peut-être à tort, que Spring permettait de s'affranchir de démarrer/fermer les Transactions
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Session session = sessionFactory.getCurrentSession(); session.beginTransaction(); User userAuthenticated = null; Query query = session.createQuery("FROM User WHERE password='"+password+"' AND login='"+login+"'"); ...
J'ai lu des tonnes d'aide sur l'utilisation des TransactionManager et au final, je suis complètement paumé. Visiblement il y a plusieurs façons de l'implémenter et c'est un peu dépendant de la version d'Hibernate qu'on utilise. Bref, je suis perdu.
J'espère que c'est à peu près clair parceque j'ai la tête sans dessus dessous à force de lire des trucs différents.
Partager