我的应用程序与Grails 1.1运行良好(是的,它是2016年,此应用程序从未更新过)。我目前正在尝试将其更新为最新版本的Grails。但我试图从1.1更新到1.2.5,然后更新到1.3.7,然后再更新到2.4.4,依此类推。我认为,如果我尝试直接升级到更新版本,那么要进行的修改太多了。
所以,当更新到1.2.5时,我遇到了一个问题,我无法弄清楚如何解决。首先,我的一些域类是通过hbm.xml映射的。在重复映射出现问题后,我将所有hbm.xml迁移到域类中的法线映射。它适用于所有这些,除了其中5个。运行我的应用程序时,无法找到GORM生成的方法。它们都为这4个域类抛出了groovy.lang.MissingMethodException。
我注意到这4个域类和其他正在运行的域类之间的唯一区别是它们都是从抽象的非域类扩展而来的。层次结构如下:
Inside / src / groovy:
Inside / grails-app / domain:
抽象类只包括一些属性(在域类中继承和映射)和一些抽象和非抽象方法。我需要它来实现多态性。
为什么会出现这个问题?继承是使用grails 1.1,我看到最近的答案谈论在/ src / groovy中创建抽象类的这种方法。 grails 1.2.5中是否存在关于此问题的特定错误?