首页 > 解决方案 > QueryDSL:是否可以动态地将字段添加到 SELECT 语句?

问题描述

我想为 Oracle 自动创建 SQL 语句,我一直在研究 QueryDSL。我已经成功地使用下面的代码创建了一个带有静态列的查询。

我的目标是将列列表输入 QueryDSL 并将它们添加到 SELECT 语句中。这将需要创建一个新对象,然后将其添加到 SELECT 语句并为列表中的每一列重复。

从文档来看,在 SELECT 语句被实例化后,我似乎无法向它添加更多列。我只能创建一次 SELECT 语句;任何其他 SELECT 语句都会覆盖之前的语句。

QDRnccell rnccell = new QDRnccell("rnccell");
FTnn0000xxx t032 = new QFTnn0000xxx("t032");
StringPath cellname = Expressions.stringPath(rnccell, "cellname");

SQLQuery sqlQuery = new SQLQuery(conn, configuration);
sqlQuery
    .select(t032.starttime,
        t032.cyyy.as("tp_0"),
        t032.czzz.as("tp_1"))
    .from(t032);

我希望在创建 sqlQuery 之后向 select 语句添加额外的列,但如前所述,它只是被覆盖了。

标签: javasqloraclequerydsl

解决方案


推荐阅读