相关疑难解决方法(0)

按名称实例化jooq Field <>

我正在尝试使用jOOQ在一些通用代码中构建SQL查询.我对使用jOOQ执行这些查询或检查结果不感兴趣.此外,此代码是通用的,所以我不能使用jOOQ的代码生成.

我已经设法弄清楚这一点:

List<org.jooq.Field<?>> fields = new ArrayList<org.jooq.Field<?>>();
Field<?> field = Factory.field("somefield");
fields.add(field);
field = Factory.field("someotherfield");
fields.add(field);

Field<Object> fieldPK = Factory.field("somePKField"); 
Condition condition = fieldPK.equal(123);

Factory factory = new Factory(connection, SQLDialect.POSTGRES);
SelectFinalStep step = factory.select(fields).from("sometable").where(condition);
String query = step.getQuery().getSQL(true);
Run Code Online (Sandbox Code Playgroud)

但是Factory.field()和from()采用通用SQL而不是实际的表或字段名称,因此没有引用(即使使用RenderNameStyle.QUOTED)并且没有针对SQL注入的保护.

有没有办法创建一个知道他们名字是什么的字段或表?理想情况下,我可以通过其名称和父表指定一个字段,jOOQ为我构建"sometable"."somefield"字符串.

java jooq

7
推荐指数
1
解决办法
6867
查看次数

标签 统计

java ×1

jooq ×1