【问题标题】:Grails belongsTo, should I?Grails 属于,我应该吗?
【发布时间】:2009-06-26 09:07:15
【问题描述】:

让我们直接解决问题(对于 Grails 1.1.1,它应该可以在以前的问题上运行)

我有 2 个域,即:像这样的用户和详细信息:

Class User {
   String userName ; 
   ..... // another fields 

   static hasMany = [details:Detail];
}

Class Detail{
  String detailName ;
  ... // another fields 

  static belongsTo = [user:User];
}

如果我这样做了:

def user = User.get(1);
Detail.findAllByUser(user);

为什么会报错?

但是如果我对细节进行修改

Class Detail{
      String detailName ;
      ... // another fields 

      User user; 
      static belongsTo = [user:User];
    }

(通过添加用户)它将像正常一样工作......

使用 belongsTo 有什么效果吗? 还是我在这里犯了错误的概念?

【问题讨论】:

    标签: java database grails groovy grails-orm


    【解决方案1】:

    您的示例不是您通常访问详细信息的方式。详细信息将通过 User 实例访问,例如:

    def user = User.get(1)
    def userDetails = user.details   // not Detail.findAllByUser(user);
    

    【讨论】:

    • 好的,hasMany 是合理的。归属地怎么样?如果我在用户中输入了 hasMany,我是否需要说明?
    • 不,您不必在 Detail 类中有一个 belongsTo。但是,如果您省略它,则不会级联删除。例如,如果您删除一个用户,您可能希望 GORM 自动删除与该用户关联的所有详细信息记录。为了自动管理,您需要详细信息中的 belongsTo。在你的情况下,我会保留belongsTo。
    猜你喜欢
    • 1970-01-01
    • 2016-06-09
    • 2011-03-15
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多