2015-06-20 2 views
1

У меня есть несколько таблиц, в которых все логическое поле удалено. Каков наилучший способ фильтрации нетерпеливой нагруженных коллекции (с HQL), то есть это:Каков правильный способ использования HQL для данных с флажками удаления

 
from worker as w left join w.taskSet as t 
where (w.deleted!=true or w.deleted is null) 
and (t.deleted!=true or t.deleted is null) 

Привычка возвращает экземпляр работника, если у него есть работа, которая была удалена

ответ

1

фильтрации применяется к корневому лицу, являющемуся (например, Worker), и коллекции не будут отфильтрованы.

Вам лучше определить filter на обоих объектах, а также одну ассоциацию «один ко многим».

0

Это решение работает для меня

 


@FilterDef(name="NOT_DELETED") 
@Filters({ 
    @Filter(name="NOT_DELETED", condition="not deleted or deleted is null") 
}) 
@Entity 
... 
    @Column 
    Boolean deleted 
... 



Использование

session.enableFilter ("NOT_DELETED");

 Смежные вопросы

  • Нет связанных вопросов^_^