如果想在某个场景取消 @Where 注解中的条件,可以使用 @Filter 注解。

首先,在实体类中添加 @FilterDef 注解,定义一个过滤器。

@Entity
@FilterDef(name='deletedFilter', parameters=@ParamDef(name='isDeleted', type='boolean'))
@Where(clause='is_deleted = true')
public class MyEntity {
   ...
}

然后,在需要取消 @Where 注解条件的场景中,使用 @Filter 注解来覆盖默认的 @Where 注解。

Session session = entityManager.unwrap(Session.class);
Filter filter = session.enableFilter('deletedFilter');
filter.setParameter('isDeleted', false);

这样就可以在特定场景下禁用实体类中的 @Where 注解条件。


原文地址: https://www.cveoy.top/t/topic/nWS9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录