Встречается на собеседованиях • сегодня
Как удалить клиента, связанного с другой таблицей через Foreign Key
При удалении клиента с Foreign Key связями нужно учитывать ограничения целостности данных. Есть несколько подходов:
1. **Каскадное удаление** (если логика приложения позволяет):
```java
@Entity
public class Client {
@OneToMany(mappedBy = "client", cascade = CascadeType.REMOVE)
private List orders;
}
```
2. **Сначала удалить зависимые записи**:
```java
// Удаляем все заказы клиента
orderRepository.deleteByClientId(clientId);
// Затем удаляем клиента
clientRepository.deleteById(clientId);
```
3. **Изменить стратегию через аннотацию**:
```java
@OnDelete(action = OnDeleteAction.CASCADE)
private Client client;
```
4. **Использовать soft delete** (рекомендуется):
```java
@Entity
public class Client {
@Column(name = "is_deleted")
private boolean isDeleted;
}
```
Выбор метода зависит от бизнес-логики. Каскадное удаление может быть опасным, поэтому чаще используют soft delete или явное удаление зависимостей.

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