Grails域类上的java接口(interface)

标签 java grails groovy

我正在处理的大型项目中有四个组件...

  1. 现有的 JPA/Hibernate java 库(java 域)。
  2. 使用 java 域的现有服务层。
  3. 只有基本接口(interface)(api 和元数据)的 Java 类库。
  4. 新的 grails 项目

除最后一件外,我已经成功地将大部分内容联系在一起。我有一个现有的 servlet,它从 api 获取一个接口(interface)类,但我似乎无法在任何 grails 域类上实现我的接口(interface)。

一个例子...

api 库中的接口(interface)示例...

public interface IPerson{
    public Object getId()
    public String getName()
}

Grails 域类...

class Person implements IPerson{
...
    def getId(){
        return id
    }

    String getName(){
       return name;
    }

}

我的项目在没有 grails 域类接口(interface)的情况下工作正常,但是一旦我添加它,它似乎没有被识别为一个实体。我收到类似

的错误
groovy.lang.MissingMethodException: No signature of method: static com.some.thing.Person.getAll() is applicable for argument types: () values: []

有没有人试过这样的事情?

最佳答案

问题显然是由其中一个方法称为 getId() 引起的,因此它本质上是定义域类字段 id,这与隐式方法冲突.因此,您可以通过重命名此方法或(希望自己没有测试过)更改生成策略来解决问题,如所述here .

关于Grails域类上的java接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7098688/

相关文章:

apache - 在 WebFlow 中强制使用 https

macos - 如何在 Mac 上找到 Grails/Groovy 的安装位置?

groovy - Groovy 中是否可以获取变量的名称?

java - 有什么办法可以解决 Maven 模块中的循环依赖吗?

java - 亚行没有响应 - Android Studio

java - 从给定数组创建逆序数组

java - 在 JPA 中加入命名查询

java - 如何将参数传递给 TestNG 监听器

java - 设置 Grails 分布式缓存时 ehcacheMulticastGroupAddress 出错

grails - 我可以通过 Bootstrap 或通过Grails中的任何操作来创建存储过程吗?