Java 从JOOQ解析器结果获取表/列元数据
使用JOOQ解析器API,我能够解析以下查询,并从结果查询对象获取参数映射。从这里,我可以看出有一个参数,它的名字是“某物” 但是,我还没有弄清楚如何确定参数“something”被分配给名为“BAZ”的列,并且该列是表“BAR”的一部分 解析器API是否有方法获取与每个参数关联的表/列元数据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
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
表达式时,您必须自己跟踪此类重命名