我在使用Grails中的Hibernate Criteria查詢時遇到了一個問題。Hibernate標準中的協調規模
請看:
def visitors = Client.withCriteria{
visits{
use (TimeCategory) {between('date',date,date+1.month-1)}
}
sizeGe("visits",params.from)
sizeLe("visits",params.to)
fetchMode("visits", FM.JOIN)
};
我只需要這些客戶端,其中有數量從訪問在之間的一個月,到界限。
但現在大小*限制正在適用於所有訪問。所以如果客戶在本月訪問一次,並且在上個月訪問。如果我設置= 2,則該客戶端將處於結果。但它不應該在那裏。
// UPD: 的東西作爲sizeGe和sizeLe限制問題並不像我期望的那樣。
從我的角度來看,他們應該在之間申請之間的限制,但他們不是。
例如:
def client = new Client();
client.visits.add(new Visit(date:'2010-03-16'));
client.visits.add(new Visit(date:'2010-05-16'));
client.visits.add(new Visit(date:'2010-05-17'));
client.save();
然後我想,如果:
- 日期= Date.parse( 'YYYY-MM', '2010-05')
- params.from = 2個
標準應該返回該客戶端,並且如果
- params.from = 3
不會返回;
但它返回,因爲尺寸鍺正在應用於所有訪問,無論它具有哪個日期。
// END UPD。
讓我知道如果smth仍然不清楚。
任何幫助表示讚賞。
謝謝,Vova。
您能詳細說明嗎? – 2010-05-16 20:00:36