向导入的GORM类添加新关系

时间:2014-12-19 22:54:23

标签: grails orm gorm grails-domain-class

有没有办法为导入的GORM域类添加更多所属关系?具体来说,我正在尝试使用table-per-class来扩展共享子类,但是如果我在两个(或更多)位置执行此操作,并且这些位置不了解彼此,那么就像:

set.addToParents(parentSet)

开始导致:

org.hibernate.WrongClassException: Object [id=3482] was not of the specified subclass [com.acumenllc.domaincore.DbSet] : Discriminator: com.acumenllc.tickets.domain.TicketSet

到处发生。

多一点背景,我正在研究一个闭包表来跟踪相关对象。基类识别父子双向关系,以及它的祖先 - 后代扩展。然后,不同的应用程序使用对象上的belongsTo关系扩展此类,以在结果图中表示为节点。我们特别希望能够或多或少地忽略碰巧共享同一数据库的其他应用程序中的其他一些类。

理想情况下,可以将我们的基本域类导入到新的应用程序中,而不是扩展到子类中,重新定义基类在应用程序范围内识别的关系集。

1 个答案:

答案 0 :(得分:1)

我能看到的唯一实用方法是使用.hbm.xml文件。在代码中包含hasMany / belongsTo的GORM方法和使用注释的JPA方法都非常不灵活,无法支持这种映射。但是,如果将配置与代码分开,则可以根据需要为不同的应用程序定义关系。创建hibernate.cfg.xml文件和hbm.xml文件的描述为here in the docs