Java Grails Groovy-获取一对多关系的最小和最大日期

Java Grails Groovy-获取一对多关系的最小和最大日期,java,grails,groovy,Java,Grails,Groovy,我的域类在MyClass和Event之间具有一对多关系: class MyClass { String name Date firstEvent Date lastEvent static hasMany = [events : Event] } class Event { String name Date dateCreated static belongsTo = [indicator : Indicator] } 设置firstEvent以反映关联事件的最小

我的域类在MyClass和Event之间具有一对多关系:

class MyClass {
  String name
  Date firstEvent
  Date lastEvent
  static hasMany = [events : Event]
}

class Event {
  String name
  Date dateCreated
  static belongsTo = [indicator : Indicator]
}
设置firstEvent以反映关联事件的最小值(dateCreated)和lastEvent以反映最大值(dateCreated)的最佳方法是什么

也许有一种方法可以在控制器中访问此数据,而不必将其包含在域类中

谢谢你的帮助。我是grails的新手:)

应该可以

class MyClass {
  static hasMany = [events : Event]

  static namedQueries = {

    firstEvent {
      events{
        projections{
          min 'dateCreated'
        }
      }
    }

    lastEvent {
      events{
        projections{
          max 'dateCreated'
        }
      }
    }

  }
}
致电:

Date first = myClassIntance.firstEvent().get()

将字段创建为瞬态,并改用getter。请看-这几乎正是您所需要的虽然这是一种有效的方法,但这个答案并没有给出一个完整的示例,说明如何使用namedQuery实现它,并且应该进行增强。否则,这是一个低质量的“仅链接”答案。您可以考虑给出一些使用名称查询解决问题的例子。谢谢。我试着实施奥尔德林的建议,效果很好。我也可以尝试这种方法来比较:)