Должны ли Entity-классы реализовывать Serializable

132
24 декабря 2021, 19:00

Смотря старые видео и статьи по Hibernate обнаружил, что все Entity в их примерах реализуют интерфейс Serializable. Один парень на видео даже сказал, что без этого хибернейт ляжет с ошибкой, потому что по сути передача в БД подразумевает сериализацию. Суть вопроса в том, что сейчас уже из всех примеров, которые я видел, никто не реализует в Entity-классах этот интерфейс, и я не исключение. При этом хибернейт спокойно себе работает и ни на что не жалуется. Так вот, нужно ли Entity-классам реализовывать данный интерфейс или это уже пережиток прошлого?

Answer 1

Hibernate не занимается сериализацией Entity, поэтому для локального использования реализовывать Serializable в Entity необязательно. Однако Entity может быть ещё и Java бином и передаваться куда-то дальше по сети или как-то иначе. Именно поэтому спецификация JavaBeans (в параграфе 5.5) требует, чтобы Java бины реализовывали Serializable или Externalizable интерфейс. Соответствие реализации Entity требованиям JavaBeans считается "best practice".

https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/

READ ALSO
Java Stream api как вернуть обработанный поток

Java Stream api как вернуть обработанный поток

Изучаю Java, делаю задачу по stream api, но решение не проходит

98
Наследование java [дубликат]

Наследование java [дубликат]

Объясните пожалуйста для чего это, если мы создали класс Animal, потом Cat extends Animal, для чего создают объекты вида Animal barsik = new Cat(); если могли просто...

111
сохранение в Json

сохранение в Json

мне нужно сохранить файл в формате Json, чтобы потом при открытии я мог использовать данные которые сохранил, желательно сохранить файл в конкретную...

183
ClientServer App Java

ClientServer App Java

Друзья просьба помочь понять почему не компилируется код сервера

109