Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为jooq中的每个查询添加动态id_Java_Sql_Jooq - Fatal编程技术网

Java 如何为jooq中的每个查询添加动态id

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的解决方案,它正是您所需要的

我使用的是JOOQ3.10。我想为每个select、update和delete查询添加带有动态值的默认条件

例1:

从表名称中选择*

从表名称中选择*,其中org\u id=dynamic\u value

例2:

从表名称中选择*,其中列名称=值

从表名称中选择*,其中列名称=值,组织id=动态值

如何实现此目标?

使用jOOQ解决此问题 这看起来像是行级安全的一种情况,可以使用如下所述的:

具体的实现过于复杂,无法在堆栈溢出上重现,但如果您正在寻找一个只有jOOQ的解决方案,它正是您所需要的

使用SQL解决此问题 并非所有数据库都支持此功能,但值得一提的是:

更彻底的解决方案是使用SQL视图或表值函数,并将相关谓词直接添加到这些视图或函数中

  • 在使用视图的情况下,您必须使用类似Oracle的
    SYS\u CONTEXT
    函数,在事务开始时使用相关的
    dynamic\u值初始化JDBC连接
  • 在使用表值函数的情况下,可以将
    动态_值
    直接传递给该函数,然后该函数在基础表上运行查询,并添加谓词
在上述两种情况下,您必须确保不直接向表提供任何授权,而只向视图提供任何授权