当前位置: 首页 > 知识库问答 >
问题:

Spring Data JPA全局筛选子句,继承所有存储库方法

贺山
2023-03-14

我们正在使用Spring boot+Spring data JPA和Hibernate开发一个多租户web应用程序。

多租户是通过拥有一个组织表来实现的,该表作为外键连接到几乎每个表上。这意味着每个DB调用(Spring Data repository查询方法)都必须用组织ID进行检查。

谢谢你抽出时间。

共有1个答案

梁池暝
2023-03-14

如果你有一个基类,比如说BaseEntity你可以使用@org.hibernate.annotations.filter:

> baseEntity中的

  • :

    @filterdef(name=“organizationfilter”,parameters=@paramdef(name=“orgid”,type=“long”))@filterdef(name=“organizationfilter”,condition=“lang_id=:orgid”)

    session.enableFilter(“organizationFilter”).setParameter(“orgid”,organization.getID());

  •  类似资料:
    • 我正在为我的Web应用程序使用Spring MVC和HiberNate。我正在寻找一种方法来创建一种全局Hibernate过滤器,该过滤器将应用于我的DAO类中的每个查询,而不必在每个DAO方法中显式启用它。 要求按用户选择的会话变量过滤记录。因此,我们的查询参数将保存在会话中,该会话中的所有DAO查询都需要通过该变量过滤结果。这里的目的是避免每个DAO方法中的所有可重复过滤代码。 欢迎任何想法!

    • 我正在使用100个实体(使用JHipster)设置一个新的Spring Boot API,我的问题是:鉴于我有一组存储库层方法,我希望我的所有存储库都能够调用这些方法。 我已经尝试制作所有接口来扩展('RepositoryQuery'是我默认的自定义接口名称后缀),然后使用特定于实体的类。请注意,所有的类扩展了一个泛型实现类,名为。 请注意,给定正则表达式中的“.*”代表我的持久实体集中的任何实体

    • 如果我打电话: 它给出了方法的结果 但是现在我需要从调用这个方法(JPararePository扩展了这个接口) 为了调用EmployeeRepository作为restendpoint,我给EmployeeRepository编写了一些函数。 但我得到了一个错误:

    • 问题内容: 我的课是: 我在这个类中写一个子类: 注意在 覆盖类中 的 getX 方法时,我已经从方法定义中删除了该子句,现在它导致编译器出现异常行为,这是预期的: 不会如预期那样将其封闭在一个块中而无法编译。 编译而不将它封闭在一个块中。 但是下面的代码行需要try-catch块。 就像可以预见的那样,即在运行时多态期间使用父类引用来调用子方法,为什么Java的设计人员在覆盖特定的父类方法时没有

    • 我知道多重继承的内存布局没有定义,所以我不应该依赖它。但是,在特殊情况下,我可以依赖它吗?也就是说,一个类只有一个“真正的”超级类。所有其他类都是“空类”,即既没有字段也没有虚拟方法的类(即它们只有非虚拟方法)。在这种情况下,这些附加类不应该在类的内存布局中添加任何内容(更简洁地说,在C 11的措辞中,该类具有标准布局) 我能推断出所有的超类都没有偏移吗?例如。: 在这里, 是类, 是唯一真正的基