2015-05-23 64 views
1

我可以使用jooq創建jasper報告查詢嗎?Jooq創建jasper報告查詢

我的意思是這樣

select something from table where field=$P{someparameter} 

問題查詢是在生成的SQL中$P{someparameter}

要清楚我只需要生成的sql查詢。

回答

1

如果您想要包含某個特定於供應商的SQL表達式,您可以隨時使用jOOQ調用"plain SQL"的內容。在你的情況,我猜測,下面可能是夠你:

Select<?> select = 
DSL.using(configuration) 
    .select(TABLE.SOMETHING) 
    .from(TABLE) 
    .where(TABLE.FIELD.eq(DSL.field("$P{{someparameter}}", TABLE.FIELD.getDataType()))); 

請注意,你必須「轉義」大括號,如大括號在jOOQ的純SQL模板語言意義。

然後,您可以提取SQL字符串是這樣的:

String sql = select.getSQL(); 

,並可能提取綁定值,以及:

List<Object> bindings = select.getBindValues(); 
+0

在結果查詢字符串,我得到'$ Psomeparameter'不是'$ P {someparameter}' – res1

+0

@ res1:抱歉,延遲。我已經更新了答案。當然,你是對的。 –

+0

Lukas沒問題 – res1