使用 HQL 处理带有删除标志的数据的正确方法是什么
Whats the correct way to use HQL for data with delete flags
我有几个表都删除了一个布尔字段。
过滤预先加载的集合(使用 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 )
如果他有被删除的工作,他不会return一个工人实例
过滤应用于正在获取的根实体(例如 Worker
),集合不会被过滤掉。
您最好在两个实体和一个一对多关联上定义 filter。
这个解决方案对我有用
@FilterDef(name="NOT_DELETED")
@Filters({
@Filter(name="NOT_DELETED", condition="not deleted or deleted is null")
})
@Entity
...
@Column
Boolean deleted
...
用法
session.enableFilter("NOT_DELETED");
我有几个表都删除了一个布尔字段。 过滤预先加载的集合(使用 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 )
如果他有被删除的工作,他不会return一个工人实例
过滤应用于正在获取的根实体(例如 Worker
),集合不会被过滤掉。
您最好在两个实体和一个一对多关联上定义 filter。
这个解决方案对我有用
@FilterDef(name="NOT_DELETED") @Filters({ @Filter(name="NOT_DELETED", condition="not deleted or deleted is null") }) @Entity ... @Column Boolean deleted ...
用法
session.enableFilter("NOT_DELETED");