我在使用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