У меня есть Объект, который имеет ассоциацию к другому Объекту, аннотируемому @Where, как так
public class EntityA {
@OneToMany
@Where(...)
private List<EntityB> entityBList;
}
Недавно неизбежность произошла, я должен загрузить EntityB, которые не соответствуют @Where пункту. Я мог удалить @Where аннотацию, но она используется много, так идеально я не хочу делать это. Кроме загрузки списка EntityB вручную, с другим запросом, каковы мои опции? Могу я говорить Быть в спящем режиме для игнорирования @Where аннотации?
После множества исследований выяснилось, что это просто невозможно. Я бы настоятельно рекомендовал избегать @Where, поскольку трудно предсказать заранее, понадобятся ли вам когда-нибудь эти ассоциации или нет.
Вы можете сопоставить другое свойство с такие же данные, как это:
public class EntityA {
@OneToMany
@JoinColumn(name='theColumnName', insertable=false, updateable=false)
private List<EntityB> entityBListReadOnly;
}
Важно установить как обновляемое false и вставляемое false, чтобы избежать проблем с согласованностью в ваших данных!