Назад к вопросам
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;
}
}