Sobes.tech
Назад к вопросам
Junior — Middle
89

Какие требования предъявляются к классу для корректной работы с Hibernate?

Ответ от нейросети

sobes.tech AI

Для корректной работы с Hibernate класс-сущность должен удовлетворять следующим требованиям:

  • Наличие публичного конструктора без параметров (дефолтный конструктор).
  • Класс должен быть обычным POJO (Plain Old Java Object) — не должен быть final, чтобы Hibernate мог создавать прокси.
  • Поля, которые мапятся на колонки таблицы, обычно должны быть приватными с публичными геттерами и сеттерами.
  • Класс должен иметь уникальный идентификатор (поле с аннотацией @Id).
  • Рекомендуется реализовать методы equals() и hashCode() корректно, основываясь на идентификаторе.

Пример:

@Entity
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;

    public User() {} // обязательный дефолтный конструктор

    public Long getId() { return id; }
    public void setId(Long id) { this.id = id; }

    public String getName() { return name; }
    public void setName(String name) { this.name = name; }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof User)) return false;
        User user = (User) o;
        return id != null && id.equals(user.getId());
    }

    @Override
    public int hashCode() {
        return 31;
    }
}