首页 > 解决方案 > 使用带有休眠配置的现有 JPA 从 Grails 2.4.4 迁移到 4.0.9

问题描述

我必须将旧版Grails 2.4.4应用程序迁移到Grails 4.0.9。现有的域插件具有具有休眠配置的 JPA(Java 代码),可以按预期完美运行。我的应用中有 200 多个域实体。我想重用这些实体。为此,我将所有实体类更改为 groovy 类,并使用 @Artefact(DomainClassArtefactHandler.TYPE) 实现 GormEntity 和注释类。当我构建项目时,出现以下错误。

C:\domain-plugin\build\tmp\compileGroovy\groovy-java-stubs\domain\aanvraag\Book.java:11: 错误:Book 不是抽象的并且不会覆盖 Book @ 中的抽象方法 addTo(String,Object) javax.persistence.Entity() @grails.artefact.Artefact(value="Domain") @javax.persistence.Table(name="Book") @domain.common.annotation.TimeTravel() 公共类 Book

C:\domain-plugin\build\tmp\compileGroovy\groovy-java-stubs\aanvraag\Book.java:45: 错误:名称冲突:Book 中的 instanceOf(Class) 和 GormEntity 中的 instanceOf(Class) 具有相同的擦除,但两者都没有覆盖其他公共抽象布尔 instanceOf(java.lang.Class<java.lang.Object> param0);

C:\domain-plugin\build\tmp\compileGroovy\groovy-java-stubs\aanvraag\Book.java:47: 错误:名称冲突:Book 中的 mutex(Closure) 和 GormEntity 中的 mutex(Closure) 具有相同的擦除,但两者都没有覆盖其他公共抽象 java.lang.Object mutex(groovy.lang.Closure<java.lang.Object> param0);

C:\domain-plugin\build\tmp\compileGroovy\groovy-java-stubs\aanvraag\Book.java:51:错误:名称冲突:在 Book 中插入(Map<Object,Object>),在 GormEntity 中插入(Map)具有相同的擦除,但都不会覆盖其他公共抽象域。aanvraag.Book insert(java.util.Map<java.lang.Object, java.lang.Object> param0);

其中 D 是类型变量:

D extends Object declared in interface GormEntity

C:\domain-plugin\build\tmp\compileGroovy\groovy-java-stubs\aanvraag\Book.java:53:错误:名称冲突:Book 中的合并(Map<Object,Object>)和 GormEntity 中的合并(Map)具有相同的擦除,但都没有覆盖其他公共抽象域.aanvraag.Book merge(java.util.Map<java.lang.Object, java.lang.Object> param0);

其中 D 是类型变量:

D extends Object declared in interface GormEntity

C:\domain-plugin\build\tmp\compileGroovy\groovy-java-stubs\aanvraag\Book.java:55:错误:名称冲突:Book 中的 save(Map<Object,Object>) 和 GormEntity 中的 save(Map)具有相同的擦除,但都不会覆盖其他公共抽象域.aanvraag.Book save(java.util.Map<java.lang.Object, java.lang.Object> param0);

其中 D 是类型变量:

D extends Object declared in interface GormEntity

C:\domain-plugin\build\tmp\compileGroovy\groovy-java-stubs\aanvraag\Book.java:61:错误:名称冲突:Book 中的 delete(Map<Object,Object>) 和 GormEntity 中的 delete(Map)具有相同的擦除,但都没有覆盖其他公共抽象 void delete(java.util.Map<java.lang.Object, java.lang.Object> param0);

标签: hibernategrailsgrails-orm

解决方案


推荐阅读