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

时间:2014-10-22 10:40:05

标签: 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以反映min(dateCreated)和lastEvent以反映相关事件的max(dateCreated)的最佳方法是什么?

也许有一种方法可以在控制器中访问这些数据,而不必在域类中使用它?

感谢任何帮助。我是grails的新手:)

1 个答案:

答案 0 :(得分:1)

namedQueries应该做的伎俩

class MyClass {
  static hasMany = [events : Event]

  static namedQueries = {

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

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

  }
}

致电:

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