【问题标题】:Spring JPA + Hibernate Add Where condition to my entire modelSpring JPA + Hibernate 将 Where 条件添加到我的整个模型中
【发布时间】:2016-10-02 18:25:51
【问题描述】:

我目前正在开发一个新项目,我们正在通过 Hibernate 使用 Spring DATA。

所以问题是我们的基本模型有 3 个字段“IsActive”“IsDeleted”和“AccessLevel” 这些背后的想法是任何记录都可以被停用和逻辑删除。 我想我可以在我的 Base 类上写 @Where 注释并在那里写子句IsActive=true AND IsDeleted=false

但是访问级别是在认证用户中,所以DB中的所有记录都继承了字段访问级别,并且是一个int,所以访问级别为0的记录是公开的,访问级别为1的人可以找到具有以下权限的记录1 级和 0 级,但不是 2 级。

有没有办法在我的 baseModel 或我的 CustomBaseRepository 中实现它?

【问题讨论】:

    标签: java hibernate jpa spring-security spring-data


    【解决方案1】:

    对于访问限制,您可能想看看休眠过滤器: https://docs.jboss.org/hibernate/orm/5.0/manual/en-US/html/ch19.html

    hibernate 文档展示了如何在会话中激活过滤器,但没有展示如何使其始终处于活动状态。

    您似乎想实现这一目标,请查看以下问题:How to enable hibernate filter for sessionFactory.getCurrentSession()?

    那里提供的答案:在 hibernate openSession 方法上使用 aop 启用过滤器,应该也适用于 spring-data。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-29
      • 1970-01-01
      • 2014-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多