いくつかの基準でデータベースからデータを取得しようとしていますが、正しい結果が得られません。
私の方法:
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
}
このメソッドは、日付のリストとユーザー ID の 2 つの引数を取得します。
すべての Worlds finde とすべての println が印刷されますが、@results.size は常に 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週間)
火曜日 6 月 12 日 14:49:11 CEST 2012
水曜日 5 月 30 日 14:49:11 CEST 2012
0
基準に何か問題があったと思いますが、何時間も解決できません。他のスレッドも私を助けませんでした。
ご協力いただきありがとうございます