簡體   English   中英

為什么createCriteria返回這么多對象?

[英]Why createCriteria returns so many objects?

假設我有一個用hibernate映射的類,具有一堆屬性,一個id和無多對一關系,它的名稱是MyClass。 我想做的是從數據庫中獲取所有記錄,所以我這樣做:

//omitted some code
Session session = sessionFactory.openSession();
List<MyClass> = session.createCriteria( MyClass.class ).list();

對於數據庫中的SINGLE記錄,條件將在列表中返回13個對象。 我不知道為什么,而這個查詢:

//omitted some code
Session session = sessionFactory.openSession();
List<MyClass> = session.createQuery( "from MyClass" ).list();

正常,並僅返回1個對象。 有人可以向我解釋嗎?

@Ken yea,但隱藏得很深@Amir感謝您的評論,它幫助我找到了問題所在

很好地發現,在休眠映射文件中,我有一個小東西,即與另一個對象的關系,該對象中有一個在休眠映射文件中定義的列表,並且在此列表內定義了一對多關系,這導致了所有麻煩。

從一開始的解決方案是使用createQuery而不是createCriteria,但是我很好奇我是否對休眠有所了解,但這是一個古老的程序員錯誤

暫無
暫無

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

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