当前位置: 首页 > 知识库问答 >
问题:

Grails:createCriteria错误结果

方季同
2023-03-14

我试图从我的数据库中得到一些数据,但我不会得到正确的结果。

我的方法:

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
}
    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()

所以应该有一个确切的结果,但我从控制台得到的全部是:日期的范围是从今天(6月12日-2周)

CEST 2012年Tue Jun 12 14:49:11

2012年东部时间5月30日星期三14:49:11

共有1个答案

章景同
2023-03-14

Okay通过将标准更改为:

    def c = Budget.createCriteria()
    def results = c.list {
        employees { eq("id", uid) }
        project{ eq("active", true) }
        and { le("validFrom",lastDate)}
        and { ge("validUntil",firstDate)      }
    }
 类似资料:
  • 问题内容: 根据Wolfram Mathematica: cos(50) = 0.6427876096865394 ; 但是这段Java代码: 给出 0.9649660284921133 。 有什么问题吗? 问题答案: 期望参数以弧度为单位。这将返回您需要的结果:

  • Result 是 Option 类型的更丰富的版本,描述的是可能的错误而不是可能的不存在。 也就是说,Result<T,E> 可以有两个结果的其中一个: Ok<T>:找到 T 元素 Err<E>:发现错误,使用元素 E 表示(An error was found with element E) 按照约定,预期结果是 “Ok”,而意外结果是 “Err”。 和 Option 类似,Result 也有很

  • 这里是源代码 代码编译没有错误,但结果是这样的:

  • 导入java.util.Scanner;公共类GroupActivity{公共静态void main()

  • 我使用Spring Redis和@Cacheable注释来实现两种方法。当我调用一个方法时,我会得到另一个方法的缓存结果。 当我使用@Cachebale注释为每个方法配置不同的缓存时,怎么可能从错误的缓存中得到结果? 安装:Spring版本4.1.6。Redis data 1.5和Redis client 2.7.0。 示例代码:

  • 但是由于某种原因,当我运行我的程序时,它似乎没有完全接受输入,并且给我一个错误的答案,当按下按钮时,它给我的答案是179.0的男性和169.0的女性。 我看了一遍又一遍,似乎无法找出这个逻辑错误。这是我的代码。