cot_shaurma
@cot_shaurma
Java и всего понемногу

Persistable или AbstractPersistable?

Раньше сущности наследовал от Persistable., приходилось ещё hashCode() и equals() делать. Сейчас увидел класс AbstractPersistable, а там уже всё есть. Есть вообще какой-то смысл Persistable использовать, если есть AbstractPersistable? Если смысл есть, то в каких ситуациях?
  • Вопрос задан
  • 600 просмотров
Решения вопроса 1
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Interface Persistable<ID>
Persistable - это интерфейс.

Class AbstractPersistable<PK extends Serializable>
AbstractPersistable - это абстрактный класс, который имплементирует интерфейс Persistable. В силу того, что это класс, то методы equals() & hashcode() уже реализованы в нем.

По поводу того, что нужно использовать, вот, выдержка из документации Spring:

AbstractPersistable is a one-stop shop for very basic use cases. The only thing it actually does is setting up default id generation. If you want to customize that, there's nothing you gain from extending the class. So we generally recommend to neither extend the class nor implement Persistable unless you really need to customize when Spring Data shall consider the entity new.


https://docs.spring.io/spring-data/data-jpa/docs/c...
https://docs.spring.io/spring-data/commons/docs/cu...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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