我认为您的解决方案不够灵活,无法在像您这样的复杂场景中正常运行。如果您有非常简单的查询,那么是的,您可以在数据库或“java”级别设计类似SQL screener的内容,然后只需传递所有查询。
但这不灵活。一旦您的查询开始变得复杂,改进此查询筛选器将变得非常困难,因为它不是业务逻辑的一部分,并且无法知道您的权限系统的详细信息。
我建议你在服务层实施一些访问检查。服务必须知道它生成或处理数据的用户。将查询生成逻辑移动到存储库,并让您的服务根据用户权限调用不同的存储库方法,例如。或者只是根据用户权限使用参数自定义存储库调用。