Я пытаюсь получить некоторые данные из своей базы данных по некоторым критериям, но Я не буду давать правильные результаты.Grails: createCriteria wrong Результаты
Мой метод:
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 аргумента, список дат и идент.
Все изображения Worls finde и все println напечатаны, но всегда есть 0 @ results.size.
В 3 Entrys выглядеть
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 результат, но все я получаю из консоли: Диапазон дат с сегодняшнего дня (12 июня) -2weeks
вт 12 июня 14:49:11 CEST 2012
ср 30 мая 14:49:11 CEST 2012
Я думаю, что я сделал что-то неправильно с критериями, но я не могу разрешить его часами. Другие темы мне тоже не помогли.
спасибо за вашу помощь
Где делает 'uid' значение взялось? Если из параметров убедитесь, что вы преобразовали его в нужный тип, например. 'params.empId как Long'. –