Я использую, в спящем режиме аннотации. Как добавить методы к объекту POJO? Например, у меня есть "getChildNodes" метод, связанный с базой данных, но я хочу, также добавляют рекурсивный метод "getAllChildNodes". Я добираюсь "org.hibernate. PropertyNotFoundException: не Мог найти метод set для прогресса свойства класса" исключением, когда я делаю это.
Если я интерпретирую это как «как добавить метод, который НЕ связан с персистентностью», то вам нужно использовать аннотацию @Transient
в методе getAllChildNodes()
Откройте файл .java и напишите метод с именем getAllChildNodes()
.
Hibernate не пишет код за вас, он сопоставляет поля в вашей базе данных с вашим кодом. Вот и все. Если вы хотите иметь дополнительную логику в ваших классах домена/модели, кроме обычных геттеров и сеттеров для ваших свойств, вам придется добавить их самостоятельно.
Существует два способа определения структуры сущности.
При использовании аннотаций на методах getter, Hibernate предполагает, что каждый getXxx (и isXxx для булевых типов) представляет собой определение постоянного свойства. И это верно, даже если этот конкретный getter не содержит никаких аннотаций, как это происходит в вашем случае.
Hibernate также ожидает найти соответствующий метод setter для каждого постоянного свойства. И в вашем случае именно это отсутствует и вызывает исключение.
Вы можете решить эту проблему, объявив ваш пользовательский getter как @Transient
, который говорит, что этот getter не представляет постоянное свойство. Другим способом может быть преобразование сущности для использования аннотаций на переменных экземпляра. Последний вариант был бы моим личным выбором.