java - 无论如何,是否可以向实体添加动态 where 子句来动态过滤该实体的任何查询结果?

标签 java spring hibernate spring-boot aop

我正在开发一个使用 Spring Boot 框架的企业系统,该系统是无状态的(不保存 session )。

我有User实体,该实体有一个分支列表,另一个实体称为Room,现在我需要使所有房间都属于一个分支。

因此,我需要一种通用方法来在房间上添加过滤器,以获取仅与当前用户分支匹配的房间(当前用户请求 API 来获取一些房间并添加他的房间)请求 header 中的授权)。

我需要使其通用,以处理房间的任何请求,自动添加此过滤器,这样我就不用迭代所有旧的 API 并添加此过滤器,或者添加一个方面在任何查询之前添加动态条件。

我在 Room 实体上尝试了 @Where(clause = "condition") 注释,但它仅需要静态条件。

此外,我尝试使用 @Filter(name = "filterName", condition = "branch = :branchParam") 注释,但它需要在查询执行时设置参数,因此在我的万一它不起作用,因为我没有一点将此参数设置为当前用户分支。

最佳答案

我猜你要找的是

  1. QueryDsl
  2. Jooq

我个人偏好是 QueryDsl。

关于java - 无论如何,是否可以向实体添加动态 where 子句来动态过滤该实体的任何查询结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57890461/

相关文章:

hibernate - Firebird 过度伐木

java - 我将如何提取此 XML 数据?

java - 如何处理 Spring 集成流的事务(Java DSL)

java - 无法在 Heroku 上使用 Java 驱动程序连接 MongoDB

java - Spring Data Jpa 一对多关系。无法插入子记录 : foreign key is coming as NULL

java - 如何使用jpa(hibernate)获取分类对象?

java - jpa "dirty"交易

java - 如何注入(inject)接口(interface)实现?

java - JBOSS 7 - Spring ContextLoaderListener ClassNotFoundException

hibernate - Spring 和 Hibernate 事务