2013-10-04 81 views
0

我正在處理一個包含17條記錄的表。Criteria .list()不返回所有記錄

使用「session.createCriteria(MyTable.class).list()」,它只返回6條記錄;

使用「session.createQuery(」from MyTable「)」,它返回所有記錄。

與「.createSQLQuery(」SELECT * FROM MY_TABLE「)。list」相同。

我真的不知道我錯過了什麼。

哦,我直接使用Hibernate 4.2.2。沒有Spring或任何框架。

解決方案

Hibernate創建了一個帶內連接的查詢。我很想在映射上配置「Fetch.LAZY」。

+0

您是否從標準查詢中查看了生成的SQL? –

+0

是的,我看了一下,發現hibernate創建了一個帶有內連接的查詢。我很想在映射上配置「Fetch.LAZY」。 LAZY是我。 :/ 不管怎樣,謝謝你! – ul1sses

+0

它不應該創建一個內部連接,而是一個左連接。除非你告訴它,該協會是強制性的,儘管它實際上是可選的。 –

回答

0

您需要查看Lazy Loading Concepts並且您可以給予延遲加載配置,然後Hibernate會根據需要將所有記錄加載到系統中。

相關問題