我想写一个带有复杂查询的JdbcPagingItemReader,如:
从yyy中选择xxx,其中a = b和c =(从yyy中选择max(f),其中a = b)
...带参数。
以下是我编写查询的方式:
<bean
class="org.springframework.batch.item.database.support.SqlPagingQueryProviderFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="selectClause" value="SELECT ohrefnum" />
<property name="fromClause" value="FROM orderhdr_all" />
<property name="whereClause"
value="WHERE customer_id =: CUSTOMER_ID AND ohentdate = (SELECT MAX (ohentdate) FROM orderhdr_all WHERE customer_id =: CUSTOMER_ID)" />
<property name="sortKey" value="ohrefnum" />
</bean>
但它引发了以下错误:java.sql.SQLException: Missing IN or OUT parameter at index:: 2
答案 0 :(得分:0)
我发现问题的根源。它只是“=:”之后的空格字符
应该是
WHERE customer_id =:CUSTOMER_ID)
而不是
WHERE customer_id =: CUSTOMER_ID)