Je voudrais tronquer toutes mes tables de base de données entre un test d'intégration à un autre. Quelle est la meilleure façon de le faire en utilisant Hibernate?Le meilleur moyen de tronquer toutes les tables avec Hibernate?
Actuellement, je fais ceci:
public void cleanDatabase() {
doWithSession(new Action1<Session>() {
@Override
public void doSomething(Session session) {
SQLQuery query = session.createSQLQuery("truncate table stuff");
// todo - generify this to all tables
query.executeUpdate();
}
});
(doWithSession est une petite enveloppe qui crée et ferme une session). Je pourrais itérer sur tous mes objets mappés en utilisant la réflexion ... Je me demande si quelqu'un a déjà résolu ce problème.
Mais ... mais ... je veux affirmer des choses sur la base de données. Pour cela, je dois vraiment y mettre des choses. – ripper234
@ ripper234 Vous pouvez affirmer parfaitement des choses, aussi longtemps que vous le faites dans le cadre de la transaction – Qwerky
@ Qwerky - hmm, semble alors une approche intéressante. Je vais essayer, merci. – ripper234