2016-03-21 4 views
0

Ich habe eine einfache Frage für Sie über Hibernate und Spring.getCurrentSession(). Flush() sollte in Dao sein

Ich habe Dao Klassen mit update, delete, save, etc ...

Ich mag einheitlichen Test sie, und besonders auf Zwang.

Also dafür versuche ich ein Element mit falschem Wert zu aktualisieren.

ABER, für Update insbesondere, wenn ich flush() in dao nicht hinzufügen, wird keine Ausnahme geworfen. -> Normal, Ursache Datenbank nicht überprüfen.

Aber ich möchte nicht setzen flush in meinem dao!

Wie geht das?

+0

Wenn Sie Spring verwenden, verwenden Sie Spring Data und schreiben Sie DAOs nicht selbst. – chrylis

Antwort

0

Wenn Sie sprin-Daten verwenden, dann lassen Sie Ihre Repository (Dao) erweitern JpaRepository (http://docs.spring.io/spring-data/jpa/docs/current/api/org/springframework/data/jpa/repository/JpaRepository.html), dann kann man nur rufen seine flush() Methode, wenn notwendig, nachdem Sie Update genannt haben, speichern, löschen etc ...

+0

Vielen Dank, aber ich frage nicht, wie man einen Dao (in der Tat verwende ich Federdaten Winterschlaf), nur die gute Praxis für Flush. Ich möchte es überwintern lassen, aber ich brauche es im einheitlichen Test von hinzufügen und aktualisieren. Soll ich im Unitary-Test flush aufrufen? – MilacH

+0

Wenn Sie Federdaten verwenden, frage ich mich, warum Sie update, delete usw. testen möchten, weil Sie diese Methoden nicht selbst implementiert haben. Spring sollte die Richtigkeit dieser Methode prüfen. Sie sollten die Methoden testen, die Sie geschrieben haben –

+0

Ein Dao ist eine Klasse, die diese Funktion verwenden ... deshalb möchte ich es testen. Und wieder, die Frage ist nicht, was ich getan habe, sondern nur, wo man für einen einheitlichen Test flush ... – MilacH