Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.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解析器结果获取表/列元数据_Java_Sql_Jooq - Fatal编程技术网

Java 从JOOQ解析器结果获取表/列元数据

Java 从JOOQ解析器结果获取表/列元数据,java,sql,jooq,Java,Sql,Jooq,使用JOOQ解析器API,我能够解析以下查询,并从结果查询对象获取参数映射。从这里,我可以看出有一个参数,它的名字是“某物” 但是,我还没有弄清楚如何确定参数“something”被分配给名为“BAZ”的列,并且该列是表“BAR”的一部分 解析器API是否有方法获取与每个参数关联的表/列元数据 String sql = "SELECT A.FOO FROM BAR A WHERE A.BAZ = :something"; DSLContext context = DSL.using... Pa

使用JOOQ解析器API,我能够解析以下查询,并从结果查询对象获取参数映射。从这里,我可以看出有一个参数,它的名字是“某物”

但是,我还没有弄清楚如何确定参数“something”被分配给名为“BAZ”的列,并且该列是表“BAR”的一部分

解析器API是否有方法获取与每个参数关联的表/列元数据

String sql = "SELECT A.FOO FROM BAR A WHERE A.BAZ = :something";

DSLContext context = DSL.using...
Parser parser = context.parser();
Query query = parser.parseQuery(sql);


Map<String, Param<?>> params = query.getParams();
String sql=“从A栏中选择A.FOO,其中A.BAZ=:something”;
DSLContext=DSL。正在使用。。。
Parser=context.Parser();
Query=parser.parseQuery(sql);

Map从jOOQ 3.11开始,可用于访问内部表达式树的SPI是SPI,在解析之前必须将其附加到
context.configuration()
。然后,每当您遍历该表达式树时,例如在
query.getParams()
调用中,都会调用它

然而,有相当多的人工管道需要完成。例如,
VisitListener
只将
A.BAZ
作为列引用,而不直接知道
A
是重命名的表
BAR
。在访问
栏A
表达式时,您必须自己跟踪此类重命名