Java 如何为jooq中的每个查询添加动态id
我使用的是JOOQ3.10。我想为每个select、update和delete查询添加带有动态值的默认条件 例1:Java 如何为jooq中的每个查询添加动态id,java,sql,jooq,Java,Sql,Jooq,我使用的是JOOQ3.10。我想为每个select、update和delete查询添加带有动态值的默认条件 例1: 从表名称中选择* 从表名称中选择*,其中org\u id=dynamic\u value 例2: 从表名称中选择*,其中列名称=值 从表名称中选择*,其中列名称=值,组织id=动态值 如何实现此目标?使用jOOQ解决此问题 这看起来像是行级安全的一种情况,可以使用如下所述的: 具体的实现过于复杂,无法在堆栈溢出上重现,但如果您正在寻找一个只有jOOQ的解决方案,它正是您所需要的
从表名称中选择*代码>
从表名称中选择*,其中org\u id=dynamic\u value
例2:
从表名称中选择*,其中列名称=值代码>
从表名称中选择*,其中列名称=值,组织id=动态值
如何实现此目标?使用jOOQ解决此问题
这看起来像是行级安全的一种情况,可以使用如下所述的:
具体的实现过于复杂,无法在堆栈溢出上重现,但如果您正在寻找一个只有jOOQ的解决方案,它正是您所需要的
使用SQL解决此问题
并非所有数据库都支持此功能,但值得一提的是:
更彻底的解决方案是使用SQL视图或表值函数,并将相关谓词直接添加到这些视图或函数中
- 在使用视图的情况下,您必须使用类似Oracle的
SYS\u CONTEXT
函数,在事务开始时使用相关的dynamic\u值初始化JDBC连接
- 在使用表值函数的情况下,可以将
动态_值
直接传递给该函数,然后该函数在基础表上运行查询,并添加谓词
在上述两种情况下,您必须确保不直接向表提供任何授权,而只向视图提供任何授权