2010-09-27 18 views
0

我必須添加一個lazy = true屬性&我已經添加一個螞蟻任務來使該類變得可以使我的pom懶惰。自動測試斷言一個屬性是非常懶惰的休眠

有沒有一種方法來測試,現在這個屬性是在懶惰模式運行時沒有看到hibernate sql控制檯輸出?我的意思是單元測試(即時通訊使用junit的spring測試)。我不想測試lazy屬性存在於xml映射中。這本身並不能確保hibernate將它視爲一個懶惰屬性。

我想要一個junit測試,以確保測試者揭示的這個錯誤將來不會出現(我並不孤單)。 (最好?)的做法是,每個不重要的錯誤應該有一個自動測試,以防止他回來(順便說一下,我從Spring框架測試中拿起了這個想法)

回答

1

您可以加載實體,關閉會話,然後聲明在您訪問屬性時引發LazyInitializationException

+0

非常感謝亨寧! – mada 2010-09-27 12:07:58

+0

@mada:不客氣!順便說一下,您可以通過加註和接受答案來表達您的讚賞。 – Henning 2010-09-27 13:16:12

1

我已經找到了其他的解決辦法:
org.hibernate.Hibernate.isPropertyInitialized(pojo, propertyName) check if the property is initialized..

的LazyInitializationException中力的訣竅關閉會話至極會導致問題換了別人測試&重新打開一個,如果這一個被共享。

1

我們沒有使用isPropertyInitialized(entity, "property")成功,但isInitialized(entity.getProperty())行之有效