Hibernate version:
Hibernate 3.0.
Mapping documents:
Le fichier de mapping est un peu trop long.
Code between sessionFactory.openSession() and session.close():
Session session = null;
Transaction tx = null;
try {
session = SessionManager.currentSession();
tx = session.beginTransaction();
Query q = session.createQuery("from Employes");
list = q.list();
tx.commit();
} catch (HibernateException he) {
if (tx!=null) tx.rollback();
throw he;
} finally {
SessionManager.closeSession();
}
Full stack trace of any exception that occurs:
org.hibernate.ConstraintViolationException
Name and version of the database you are using:
Oracle 9i
The generated SQL (show_sql=true):
des centaines de requêtes select, insert, update, delete
Debug level Hibernate log excerpt:
Je m'explique. J'ai une base de données plutôt importante avec un fichier de mapping conséquent. Je ne me suis pas rendu compte du problème tant que le base était peu fournie.
Je crois savoir que la propriété lazy=true permet de limiter le chargement de données à un contexte (classe, relation). Or j'ai l'impression que chez moi, ça ne marche pas. true est la valeur par défaut depuis Hibernate 3 mais j'ai bien essayé de la placer partout dans mon fichier de mapping. Rien à faire, des requêtes SQL sont générées (show_sql = true) par centaines avec des select mais aussi insert, update et delete alors que je ne fais qu'un simple select. J'ai l'impression que l'ensemble de la base est reconstruite et chargée dans chaque session.
L'exception org.hibernate.ConstraintViolationException est déclenchée par un insert.
J'ai passé plusieurs jours à essayer de résoudre ce problème sans succès.
Merci d'avance de toute l'aide que vous pourrez m'apporter.
Ramzi.
|