Учитывая ситуацию: база данных была создана, когда Hibernate еще не родился, мы говорим об истинном наследии здесь.
У меня есть таблицы, которые никогда не удаляли записи, просто установив флаг active в строке, чтобы пометить запись как используемую в данный момент. Запросы обычно выглядят так:
SELECT * from A left join B on A.id = B.a_id and B.active = 1
С объектами A и B, определенными в Java, и A имеет свойство
@OneToMany
private Set<B> b;
Как аннотировать свойство, чтобы добавить критерии "и B.active = 1"?
JPA-решение предпочтительнее, но при необходимости мы можем использовать и спящие аннотации.
Аналогичным образом, у нас есть случаи, когда записи имеют активный диапазон дат, поэтому мы должны добавить критерии, аналогичные
"and B.active_From >= now() and (B.active_to is null or B.active_to < now())"