Java-интерфейс на классе домена Grails - PullRequest
3 голосов
/ 18 августа 2011

У меня есть четыре компонента в моем большом проекте, над которым я работаю ...

  1. Существующая java-библиотека JPA / Hibernate (домен java).
  2. Существующий слой службы, работающий с доменом Java.
  3. Библиотека классов Java только базовых интерфейсов (API и метаданные).
  4. Новый проект Grails

Я успешно связал большую часть этого, кроме одного последнего кусочка. У меня есть существующий сервлет, который получает интерфейсный интерфейс из 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: []

Кто-нибудь когда-нибудь пробовал что-то подобное?

1 Ответ

5 голосов
/ 18 августа 2011

Проблема, по-видимому, вызвана тем, что один из методов называется getId(), поэтому он по существу определяет поле класса домена id, которое конфликтует с неявным.Таким образом, вы можете решить эту проблему, переименовав этот метод или (надеюсь, я не проверял себя), изменив стратегию генерации, как описано здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...