Bonjour tous le monde,
j'utilises hibernate pour la persistance et je voulais qu'au chargement de mon application effectuer un test de connexion de la base données.
pour cela j'essaye d'ouvrir une session Hibernate. Dans le cas ou les donnés du fichier de configuration sont correctes c'est nickel.
Par contre dans le cas ou il ya une erreur dans la chaine de connexion, Hibernate ne lance pas d'exception: les exceptions lancés sont catcher au niveau Hibernate.
En fait, voici mon code :
Code:
sessionFactory = new Configuration().configure().buildSessionFactory();
s = sessionFactory.openSession();
je catch des HibernateException mais il n y a pas une qui indique qu'il y a un probleme de connexion.
A chaque fois qu'il y a appel de la methode DriverConnectionProvider.getConnection() et que cette methode lance une SQLexception cette derniere est catchée.
Elle est catchée dans la methode buildSettings(Properties pro) de la classe SettingsFactory.
Code:
catch (SQLException sqle) {
log.warn("Could not obtain connection metadata", sqle);
}
et dans SchemaUpdate.execute(boolean , boolean)
Code:
catch ( SQLException sqle ) {
exceptions.add( sqle );
log.error( "could not get database metadata", sqle );
throw sqle;
}
pour relancer l'exception et dans la meme methode on l'a catch
Code:
catch ( Exception e ) {
exceptions.add( e );
log.error( "could not complete schema update", e );
}
par suite je ne peux pas savoir si m'a conf est bonne ou non?
est ce qu'il y a un autre moyen pour tester la connexion avec la base ? ou est ce qu'il existe une methode dans Hibernate qui lance une exception si la connexion n'est pas etablie?
Merci.
Hibernate version: 3.1