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

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

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

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

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

1 ответ

Решение

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

Другие вопросы по тегам