小编Oma*_*fer的帖子

Grails自我引用标准

在我正在工作的项目中,数据库的一部分如下图所示

数据库部分

域类具有类似于以下的定义:

class File{
    String name
}

class Document{
    File file
}

class LogEntry{
    Document document
    Date date
}
Run Code Online (Sandbox Code Playgroud)

首先,我需要获取所有文档的最新LogEntry; 在SQL中我执行以下操作(SQL_1):

SELECT t1.* FROM log_entry AS t1 
LEFT OUTER JOIN log_entry t2 
on t1.document_id = t2.document_id AND t1.date < t2.date 
WHERE t2.date IS NULL
Run Code Online (Sandbox Code Playgroud)

然后在我的服务中我有这样的功能:

List<LogEntry> logs(){
    LogEntry.withSession {Session session ->
        def query =  session.createSQLQuery(
                """SELECT t1.* FROM log_entry AS t1 
                    LEFT OUTER JOIN log_entry t2 
                    on t1.document_id = t2.document_id AND t1.date < t2.date 
                    WHERE t2.date IS NULL"""
        )
        def …
Run Code Online (Sandbox Code Playgroud)

self-join grails-orm grails3

6
推荐指数
0
解决办法
138
查看次数

标签 统计

grails-orm ×1

grails3 ×1

self-join ×1