Всем добрый час 😉 Прошу помощи Синопсис: Длительное время работаю над своим приложением. В данный момент оно довольно объёмное (170 классов, некоторые из них до 300 строк), из-за этого рефакторинг зачастую неповоротлив. Ну и надо понимать, что архитектура у меня просто отвратительная (по сути это моё первое крупное приложение). Сейчас у меня появилась проблема, связанная с тем, что я хочу реализовать функционал удаления сущности, чтобы она при этом продолжала существовать, но фактически была недоступна. Стек приложения: Java 15, Spring Data JPA, Spring Boot, в качестве базы данных используется PostgreSQL. Если у вас есть аккаунт на stackoverflow и вы хотите получить плюсики, то можете ответить на мой вопрос там. Итак, есть сущность:
@Entity
@Table(name = "warehouses")
public class Warehouse {

    @Id
    private Integer id;

    @Column(name = "name")
    private String name;
}
Она очень много где участвует, она очень важна. Например, она связана со следующей сущностью:
@Entity
@Table(name = "orders")
public class Order {

    @Id
    private Integer id;

    @ManyToOne
    @JoinColumn(name = "warehouse_id")
    private Warehouse warehouse;

    @Column(name = "amount")
    private Integer amount;
}
В данный момент я пытаюсь реализовать функционал удаления сущности Warehouse. Удаление должно быть не совсем обычным, потому что некоторые связанные сущности нам могут понадобится и потом, например та же сущность Order. То есть надо сделать Warehouse не доступным для участия в новых операциях, но доступным для связанных сущностей. Ну вот пример приведу: вот у нас грузовик привёз товар на склад, сформировалась сущность Order. А потом мы склад расформировываем, по логике нам надо удалить Warehouse, но заказ-то нам нужен будет в будущем. Поэтому надо как-то не удалить, а сделать неактивным. Есть вариант сделать в Warehouse поле boolean isActive, но я хотел бы избежать этого (потребует довольно значительно доработки кода). Может быть вы сможете предложить какие-то изящные варианты? 😩