java - 是否有向实体添加动态 where 子句以动态过滤该实体的任何查询结果?
问题描述
我正在开发一个使用 Spring Boot 框架的企业系统,并且该系统是无状态的(没有保存会话)。
我有User
实体,这个实体有一个分支列表,另一个实体叫做Room
,现在我需要让所有房间都属于一个分支。
因此,我需要一种通用方法来在房间上添加过滤器,以获取仅与当前用户分支匹配的房间(请求API
获取一些房间并在请求标头中添加他的授权的当前用户)。
我需要使其通用以处理房间的任何请求以自动添加此过滤器,这样我就可以迭代所有旧的APIs
并将此过滤器添加到其上,或者在任何查询之前使其成为一个方面以向其添加动态条件.
我在实体上尝试@Where(clause = "condition")
了注释,Room
但它只需要一个静态条件。
另外,我尝试使用@Filter(name = "filterName", condition = "branch = :branchParam")
注释,但它需要在查询执行时设置参数,因此在我的情况下它不起作用,因为我没有一点可以将此参数设置为当前用户分支。
解决方案
推荐阅读
- c - 如何计算索引处的char数组的长度?
- flutter - 如何提示用户通过读取服务器上的文本文件进行更新
- c++ - 使用 C++20 三向比较进行更静默的行为变化
- ruby-on-rails - Rails 301 从旧站点重定向到具有友好 ID 的新站点
- r - knitr - 两个数据帧并排并排,R-markdown 中的行颜色交替
- reactjs - 使用 React Native 共享菜单响应共享
- c# - 在 C# 的构造函数中分配递增的 uint ID
- java - 如何使用 JDBC 从雪花中读取数值数组?
- python - 我无法理解python中函数的基本原理
- c# - 如何使用 plink 替换 linux 服务器中 .config 文件中的标签值