簡體   English   中英

測試休眠查詢

[英]test Hibernate queries

我正在尋找一種測試Hibernate HQL條件查詢的簡單方法。 我嘗試使用IntelliJ的Hibernate Console支持,但是遇到了問題

是否有一個獨立的工具提供一種簡單的方法來測試HQL查詢? 一個簡單的控制台程序就足夠了,它創建會話工廠並執行作為參數傳遞的查詢。

您可以使用H2 (內存中的JDBC)數據庫以及容器的碼頭 ,創建一個容器和上下文,這些容器和上下文將在構建的單元測試階段(或從JUnit)執行休眠查詢。

您可以嘗試使用JUnit方法。

僅使用HQL(例如,用於Eclipse的Hibernate Tools )時,使用控制台將是我的首選。 但是,如果那不起作用,我將只使用JUnit。 我的團隊使用該策略來測試我們在生產代碼中使用的HQL查詢,並偶爾幫助編寫查詢。

測試設置涉及建立內存數據庫(我們使用HSQLDB ,但還有其他數據庫)。 使用Hibernate或原始SQL插入數據。 然后配置一個Hibernate SessionFactory連接到它,並運行您的HQL。

我們還使用它來測試其他類型的Hibernate設置或行為,並具有為我們的目的而成為完整的Hibernate測試套件的好處,以便我們可以升級並確信我們所需的一切都不會以意想不到的方式發生變化。

我懷疑是否可以將這樣的工具作為單獨的應用程序使用,您需要指定一個休眠配置(可能在Spring Context中),並且它應該能夠找到類及其HBM文件。 此外,您可能會使用不同的UserType或其他JAR中的類似內容,因此我什至不會搜索它。

對我而言,最好的工具是IDE的單元測試框架+調試功能-您可以停在創建會話的某個位置,然后在此模式下執行任何操作。 例如,在IntelliJ中,除了常用的表達式外,您可以在調試過程中放置​​代碼片段,這可能會幫助您使用Criteria API。

上次我必須執行此類工作時,我使用DbUnit來測試我的數據訪問層,在該數據訪問層中我將JPA 2.0與Hibernate一起使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM