我正在处理的大型项目中有四个组件...
- 现有的 JPA/Hibernate java 库(java 域)。
- 使用 java 域的现有服务层。
- 只有基本接口(interface)(api 和元数据)的 Java 类库。
- 新的 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/