GORM:嵌入一个包含对域类的引用的类

时间:2014-08-05 08:17:20

标签: grails gorm

假设:

  • UserFile是域类
  • src / groovy / Container.groovy:

    class Container {
      User user
      File file
      Date dateCreated
    }
    
  • 的grails-app /域/ WithContainer.groovy:

    class WithContainer {
      Container c
      String text
    
      static embedded = ['c']
    }
    

我的目标是将WithContainer映射到包含列的表:

user_id | file_id | date_created | text

GORM可以实现吗?

此设置产生:

org.hibernate.MappingException: Could not determine type for: User, at table: with_container, for columns: [org.hibernate.mapping.Column(c_user)]

由于

1 个答案:

答案 0 :(得分:0)

Container不是域类,因为它未在grails-app/domain/下定义。

您可能对embedded属性感到困惑。 embedded列表中的属性是持久属性,您希望它们的所有属性存储在与拥有类(在您的情况下为WithContainer)相同的表中,而不是存储在它们自己的表中,用外键引用。该属性仍然需要是域类的实例。