Apache Cayenne Modeler, моделирующий наследование одной таблицы, сгенерировал подкласс с другим типом возврата

Используя это в качестве примера: https://cayenne.apache.org/docs/3.0/modeling-single-table-inheritance.html.

У меня есть объект ObjEntity под названием Book. Я изменил тип Java для одного из атрибутов, чтобы использовать класс JodaTime DateTime. Суперкласс _Book() правильно генерируется с помощью метода get/set, использующего DateTime. Например: public void setRelease (выпуск DateTime)

У меня есть еще один вызов ObjEntity EBook, который устанавливает суперкласс в Book() (не то же самое, что абстрактный _Book()) . В классе _EBook я вижу тот же метод setRelease с другой сигнатурой. Например: public void setRelease(дата выпуска)

Как сделать, чтобы Modeler не создавал эти методы?


person Tuan    schedule 11.04.2014    source источник


Ответы (1)


Это не должно происходить нормально. Генератор классов не создает сеттеры/геттеры для атрибутов суперкласса в подклассе. Может быть, это что-то вроде DataMap XML? Наиболее вероятной причиной является «освобождение» объявления ObjAttribute в объекте электронной книги, которое «затеняет» «освобождение» ObjAttribute суперобъекта. Если это так, вы должны вручную удалить его из XML и переделать классы.

person andrus_a    schedule 11.04.2014
comment
Спасибо andrus_a! Я просмотрел DataMap XML, чтобы найти эти атрибуты под тегом «obj-entity» и удалить их. Это сработало отлично. - person Tuan; 11.04.2014