Почему объект не может классифицировать в JPA быть окончательным?

Почему объект не может классифицировать в JPA быть окончательным или иметь последние методы? Цитирование отсюда -

Класс объекта должен следовать за этими требованиями:

...

Класс не должен быть объявлен final. Никакие методы или персистентные переменные экземпляра не должны быть объявлены final.

Какова причина? JPA разделяет классы объекта на подклассы и переопределяет методы?

24
задан Karel Bílek 12 August 2010 в 22:21
поделиться

1 ответ

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

Обычно реализации создают подклассы вашего класса во время выполнения и / или динамически добавляют байтовый код к вашим классам, чтобы обнаружить, когда произошло изменение объекта сущности. Если ваш класс объявлен как final, это будет невозможно.

Конечно, причин гораздо больше, чем только они. Вот статья , которая дает больше информации о том, как ORM в целом работает за обложкой, которая может помочь вам лучше понять другие требования для JPA. сущности.

28
ответ дан 29 November 2019 в 00:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: