Problème avec le TransactionManager
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:
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 :
Code:
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+"'");
... |
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
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.