2つのsqlステートメントをitemWriterを実装するJavaクラスに渡して、データを自分のポーズDBに書き込もうとしています。私はハッシュマップバネバッチのクラスjdbcBatchItemWriterのbeanでハッシュマップを読み取る方法
<beans:bean id="someItemWriter" scope="step"
class="org.springframework.batch.item.database.JdbcBatchItemWriter">
<beans:property name="dataSource" ref="someSource" />
<beans:property name="sql" ref = "sqlStatements" >
</beans:property>
<beans:property name="itemPreparedStatementSetter" ref="myPreparedStatementSetter" />
</beans:bean>
REFを通してそれをやろうとしています:
<util:map id = "sqlStatements" map-class= "java.util.HashMap" key-type= "java.lang.String" value-type="java.lang.String">
<beans:entry key = "insert" value ="${fetch.some.sql}"/>
<beans:entry key = "update" value = "${fetch.someAnother.sql}" />
</util:map>
が、私は次のエラーを取得しています:
Cannot convert value of type [java.util.HashMap] to required type [java.lang.String] for property 'sql': no matching editors or conversion strategy found
私が間違っているのは何?。私はそれにどのように取り組むべきですか?
ハッシュマップが読み込まれていると、マップを文字列に変換できないと言われていますので、itemWriterのフィールド "sql"は文字列であり、マップではないと思います... – Nadir
あなたは常にINSERTと '更新?あるいは時には 'INSERT'する必要がありますが、他の時は' UPDATE'する必要がありますか? –
これはINSERT(IF NOT EXISTS)とUPDATE(IF EXISTS)のようなものです –