在我正在工作的项目中,数据库的一部分如下图所示
域类具有类似于以下的定义:
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)