Bien le bonjour,

Je cherche à indiquer à la configuration Hibernate un ensemble de classes annotées, qui définissent dans leurs annotations seules, l'intégralité du mapping avec ma base de données.

Je me passe de tous les fichiers de configuration hibernate pour réaliser l'intégralité de la configuration du mapping via code :

Code java : 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
AnnotationConfiguration config = new AnnotationConfiguration();
config.setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect")
.setProperty("hibernate.connection.driver_class", driverName)
.setProperty("hibernate.connection.url", connectString)
.setProperty("hibernate.connection.username", userName)
.setProperty("hibernate.connection.password", password);
 
config.setProperty("hibernate.connection.pool_size", "4");
config.setProperty("hibernate.connection.autocommit", "true");
config.setProperty("hibernate.cache.provider_class", "org.hibernate.cache.NoCacheProvider");
config.setProperty("hibernate.transaction.factory_class", "org.hibernate.transaction.JDBCTransactionFactory");
config.setProperty("hibernate.current_session_context_class", "thread");                 
 
//  ici ça marche //config.addAnnotatedClass(MaClasse.class);
//  là ça ne marche pas // config.addPackage("mon.package.annoté");
 
SessionFactory sessionFactory = config.buildSessionFactory();
session = sessionFactory.openSession();
session.beginTransaction();
 
...
 
 
session.createQuery( ... )

Si j'ajoute toutes les classes une par une, à coups de addAnnotatedClass, je vais réussir à les utiliser plus loin dans le code.
Cependant si je passe simplement par addPackage, hibernate m'indiquera une erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Caused by: org.hibernate.hql.ast.QuerySyntaxException: [le nom de mon entité] is not mapped
Certes je pourrais ajouter dans ce bout de code une ligne pour chacune de mes classes mappées, mais je souhaiterais m'abstraire de cette tâche. Est-ce possible ? Une méthode config.addAnnotatedPackage ferait vraiment mon affaire ...

Ai-je mal fait quelque chose ?