【问题标题】:java interface on grails domain classgrails域类上的java接口
【发布时间】:2011-08-17 20:00:34
【问题描述】:

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

  1. 现有的 JPA/Hibernate java 库(java 域)。
  2. 与 java 域一起工作的现有服务层。
  3. 仅包含基本接口(api 和元数据)的 Java 类库。
  4. 新的 grails 项目

我已经成功地将其中的大部分联系在一起,除了最后一个。我有一个现有的 servlet,它从 api 接收接口类,但我似乎无法在任何 grails 域类上实现我的接口。

一个例子...

api库中的接口示例...

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

Grails 域类...

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

    String getName(){
       return name;
    }

}

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

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

有人试过这样的吗?

【问题讨论】:

  • idnamePerson 中是否也有设置器(即使是空的主体)?我不知道它们是否在列表中被省略。

标签: java grails groovy


【解决方案1】:

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

【讨论】:

  • 我在 Id 字段上玩了一点,我找到了一种无需重命名的解决方法。谢谢。
  • 使用特质怎么样?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多