按生成的ID检索域实例

时间:2013-04-16 18:24:06

标签: grails identity grails-domain-class

我正在使用具有生成标识的Domain类:

class User {
   ...
   static mapping = {
      id generator: 'assigned', name: 'uid'
   }

   Long uid
   ...
}

但是当我尝试使用

检索实例时
User.get(1)

它返回null。如果我使用

,它确实有效
User.findByUid(uid)

生成ID时是否无法使用Domain.get或Domain.read?

2 个答案:

答案 0 :(得分:1)

即使您的ID已分配,也无需声明属性。

class User {
  static mapping = {
    id generator: 'assigned' column: 'uid'
  }
}

这里的关键是在数据库中映射列名。

答案 1 :(得分:1)

除了塞尔吉奥的回答

generator策略为assigned,这意味着应用程序在保存对象时必须assign为id。如果您在下面执行了类似的操作,那么您应该能够获得User.get(1),否则会在保存时抛出异常,而不会分配id

def user = new User(id: 1).save(flush: true)