Встречается на собеседованиях • сегодня
Как писать составной ключ в Hibernate
Составной ключ в Hibernate можно реализовать несколькими способами:
- Использование
@EmbeddedId
Создаем класс-ключ с аннотацией@Embeddableи встраиваем его в сущность через@EmbeddedId:
java
@Embeddable
public class EmployeeId implements Serializable {
private String department;
private Long employeeNumber;
// equals(), hashCode()
}
@Entity
public class Employee {
@EmbeddedId
private EmployeeId id;
// другие поля
}
text
2. **Использование `@IdClass`**
Ключ описывается отдельным классом, а в сущности поля дублируются с `@Id`:
```java
public class ProjectId implements Serializable {
private String client;
private String projectCode;
// equals(), hashCode()
}
@Entity
@IdClass(ProjectId.class)
public class Project {
@Id
private String client;
@Id
private String projectCode;
// другие поля
}Важно:
- Класс ключа должен быть
Serializable - Обязательно переопределять
equals()иhashCode() - Для
@EmbeddedIdполя ключа автоматически становятся колонками сущности @IdClassудобен при наследовании или работе с legacy-кодом

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы