gpt4 book ai didi

grails - Grails:createCriteria错误结果

转载 作者:行者123 更新时间:2023-12-02 15:35:49 31 4
gpt4 key购买 nike

我正在尝试按照某些条件从数据库中获取一些数据,但是
我不会得到正确的结果。

我的方法:

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个参数,一个日期列表和一个用户ID。

Worls找到的所有内容和所有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周)

2012年6月12日星期二14:49:11

CEST 2012年5月30日星期三14:49:11

0

我认为我在标准上做错了一些,但现在已经几个小时无法解决。其他线程也没有帮助我。

谢谢你的帮助

最佳答案

可以通过将条件更改为以下方式解决问题:

    def c = Budget.createCriteria()
def results = c.list {
employees { eq("id", uid) }
project{ eq("active", true) }
and { le("validFrom",lastDate)}
and { ge("validUntil",firstDate) }
}

关于grails - Grails:createCriteria错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10997065/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com