我试图通过一些标准从我的数据库中获取一些数据,但我不会得到正确的结果。
我的方法是:
public ArrayList getAllBudgetsByUserAndDateAndActive(ArrayList dates, uid){
ArrayList BudgetList = new ArrayList()
Date lastDate = dates.get(dates.size() - 1).date
Date firstDate = dates.get(0).date
println lastDate
println firstDate
def i
def c = Budget.createCriteria()
def results = c {
employees { eq("id", uid) }
and{
le("validUntil",firstDate)
ge("validFrom",lastDate)
}
project{ eq("active", true) }
}
println results.size
for(i=0;i<results.size;i++){
println "Budgets FROM:" + results.getAt(i).validFrom
println "Budgets UNTIL:" + results.getAt(i).validUntil
}
return null
}该方法获得2个参数、一个日期列表和一个userid。
所有的@results.size和所有println都是打印出来的,但始终是0。
这3个入口看起来像
def budget1 = new Budget(billable:"true",
numberOfPersonDays:15,
project:project1,
dailyRate:1.5,
validFrom:new Date("11/11/2011"),
validUntil:new Date("12/1/2011"),
employees:[employee1, employee2]).save()
def budget2 = new Budget(billable:"true",
numberOfPersonDays:15,
project:project1,
dailyRate:1.5,
validFrom:new Date("6/05/2012"),
validUntil:new Date("6/12/2012"),
employees:[employee1]).save()
def budget3 = new Budget(billable:"true",
numberOfPersonDays:15,
project:project2,
dailyRate:1.5,
validFrom:new Date("6/1/2011"),
validUntil:new Date("06/04/2011"),
employees:[employee1]).save()所以应该有确切的1个结果,但我从控制台得到的是:日期范围是从今天(6月12日-2周)
Tue Jun 12 14:49:11 CEST 2012
Wed May 30 14:49:11 CEST 2012
我认为我在标准上做错了什么,但我现在几个小时都不能解决它。其他的线程也帮不了我。
谢谢你的帮忙
发布于 2012-06-13 15:29:45
好的,通过将条件更改为:
def c = Budget.createCriteria()
def results = c.list {
employees { eq("id", uid) }
project{ eq("active", true) }
and { le("validFrom",lastDate)}
and { ge("validUntil",firstDate) }
}https://stackoverflow.com/questions/10997065
复制相似问题