Problème de SessionFactory avec JUnit
Bonjour,
Je bosse sur une application qui utilise Hibernate3. Je dois faire des tests unitaires avec JUnit. Le problème est que lorsque je lance mes tests, il ne va pas chercher mes fichiers de configuration. J'ai donc commencé à tout mettre en place pour initialiser ma SessionFactory. cela donne Ceci :
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
|
DriverManagerDataSource driverManagerDataSource = new DriverManagerDataSource();
driverManagerDataSource.setDriverClassName("com.mysql.jdbc.Driver");
driverManagerDataSource.setUrl("jdbc:mysql://...");
driverManagerDataSource.setUsername("...");
driverManagerDataSource.setPassword("...");
//sessionFactory
AnnotationSessionFactoryBean annotationSessionFactoryBean = new AnnotationSessionFactoryBean();
annotationSessionFactoryBean.setDataSource(driverManagerDataSource);
String[] annotatedPackages = {"..."};
annotationSessionFactoryBean.setAnnotatedPackages(annotatedPackages);
Class[] annotatedClasses = {...};
annotationSessionFactoryBean.setAnnotatedClasses(annotatedClasses);
Properties properties = new Properties();
properties.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
properties.setProperty("hibernate.show_sql", "false");
properties.setProperty("hibernate.bytecode.use_reflection_optimizer", "true");
properties.setProperty("TransactionStrategy", "org.hibernate.transaction.JTATransactionFactory");
properties.setProperty("UserTransactionName", "UserTransaction");
properties.setProperty("hibernate.c3p0.min_size", "2");
properties.setProperty("hibernate.c3p0.max_size", "20");
properties.setProperty("hibernate.c3p0.timeout", "300");
properties.setProperty("hibernate.c3p0.max_statements", "50");
properties.setProperty("hibernate.c3p0.idle_test_period", "3000");
properties.setProperty("hibernate.cache.provider_class", "org.hibernate.cache.EhCacheProvider");
annotationSessionFactoryBean.setHibernateProperties(properties); |
Lorsque j'arrive là, mon nnotationSessionFactoryBean est initialisé de la même manière que si cela avait été fait avec mes fichiers de config XML.
Le problème est que je n'arrive pas à mettre en place cette SessionFactory dans ma DAO. (Ma DAO fait un "extends HibernateDaoSupport"). Lorsque je veux faire un setSessionFactory, j'obtiens un ClassCastException.
J'ai essayé plein de trucs depuis :
- créer un HibernateTemplate,
- récupérer la config en chargeant le fichier XML,
- ...
Mais rien ne marche. Donc si vous avez une idée pour mon problème, je suis preneur.
Merci.