2016-03-21 143 views
0

我有一個簡單的問題給你關於HibernateSpringgetCurrentSession()。flush()應該在Dao

Dao班,updatedeletesave等..

我想統一測試它們,格外的約束。

因此,我試圖用錯誤的值更新元素。

但是,如果我沒有將flush()添加到dao中,則不會引發異常。 - >正常,導致數據庫不檢查它。

但我不想把flush放在我的dao

你是怎麼做到的?

+0

如果您使用的是Spring,只需使用Spring Data並且不要自己編寫DAO。 – chrylis

回答

0

如果使用SPRIN數據,然後讓您的存儲庫(DAO)擴展JpaRepositoryhttp://docs.spring.io/spring-data/jpa/docs/current/api/org/springframework/data/jpa/repository/JpaRepository.html),那麼你可以在必要時呼籲更新後,調用其flush()方法,保存,刪除等...

+0

謝謝,但我不問如何做一個道(實際上我使用spring數據休眠),只是沖洗的良好做法。我想讓休眠來管理它,但是我需要在添加和更新的單一測試中進行。我應該在單元測試中調用flush嗎? – MilacH

+0

如果你使用spring數據,那麼我想知道你爲什麼要測試update,delete等,因爲你自己沒有實現這些方法。 Spring應該測試這些方法的正確性。你應該測試你寫的方法 –

+0

道是一個使用這些函數的類......這就是爲什麼我要測試它的原因。再次,這個問題不是關於我做了什麼,而只是在何處放置齊平測試... – MilacH