grails - 在grails域中具有通用的belongsTo

标签 grails gorm relationship grails-domain-class

我的grails项目有3个类(class)。什么是正确的grails域定义

Class A {

 List<Resource> xResources
 List<Resource> yResources

 hasMany = [ xResources: Resource, yResources: Resource]
}

Class B {
  List<Resource> zResources
  hasMany = [ zResources: Resource]
}


Class Resource {

  String title
   .....
     ..

 belongsTo = [A, B]

}

上面的定义失败了,因为我没有在A类中提到MappedBy。如何避免这种情况。我希望Resource类是通用的。
我不想将Resource类仅限制为两个类,但我应该允许它将其扩展到其他类。我还需要从Resource对象获取源引用。对于这种情况,正确的GORM定义应该是什么?

最佳答案

我在您的代码中看到3个主要问题:

  • 双重定义了xResources, yResources, zResources属性。只需删除重复的List<Resource> ...定义。
  • hasManybelongsTo之前应带有static关键字。
  • 我不确定belongsTo是否可以指向多个类。如果不是,则将其删除。
  • 关于grails - 在grails域中具有通用的belongsTo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15226871/

    相关文章:

    ms-access - 在 Microsoft Access 2010 中创建关系时出现 "Too many indexes on table"错误

    javascript - 处理相关实体时防止无效状态

    grails - 设置后备区域设置

    grails - 在服务和 Controller Grails之间传递数据

    grails - 从Grails Controller中的集合中删除空记录

    hibernate - Grails Hibernate Filters插件似乎正在运行,但未过滤结果

    sqlalchemy 中的多对多自引用关系

    grails - 使用 Groovy Spring security getCurrentUser 获取有意义的字符串

    grails - 将关联添加到SpringSecurity User类

    groovy - 用于定义关系的常规静态 block