在表列中查找最大值

Cho*_*o87 9 grails

我在Grails中创建一个版本控制域类:

class VersionControl {

    Date dateCreated
    Long versionNumber

    Long getLatestVersionNumber() {
        //return largest versionNumber
    }

}
Run Code Online (Sandbox Code Playgroud)

我想添加一个查询来获取存储的最大版本号:

Long getLatestVersionNumber()
Run Code Online (Sandbox Code Playgroud)

在SQL中,此查询看起来或多或少如下:

SELECT TOP 1 MAX(versionNumber) FROM VersionControl
Run Code Online (Sandbox Code Playgroud)

函数必须将值返回为long.

在Grails中执行此操作的正确方法是什么?

Art*_*ero 29

您可以使用GORM条件,使用投影查询:

VersionControl.createCriteria().get {
    projections {
        max "versionNumber"
    }
} as Long
Run Code Online (Sandbox Code Playgroud)


Sha*_*awn 5

VersionControl.executeQuery("select max(versionNumber) from VersionControl")
Run Code Online (Sandbox Code Playgroud)

这对我来说更容易理解.