0

adtペイロードでOracleAQを処理するために次の構成を使用しています...

<bean id="messageConverter"
   class="org.springframework.data.jdbc.jms.support.converter.oracle.MappingAdtMessageConverter">
  <constructor-arg>
    <bean class="org.springframework.data.jdbc.jms.support.oracle.StructDatumMapper"> 
      <constructor-arg index="0" value="MY_QUEUE"/>
      <constructor-arg index="1" value="MyMappedClass"/>
    </bean>
  </constructor-arg>
</bean>

問題は、キューから取り出した後、INTEGERを持つフィールドのJava側のnull値と、他のフィールドの非null値を取得していることです。

MyMappedClass@649fe46f[
  id=<null>
  id2=<null>
  time=2013-02-22 14:57:11.0
  user=LUKAS
]

キュー テーブルでは、これらの値は null ではありません。

その理由は何でしょうか。マッピングが悪いと思っていましたが、何も問題はありません。これらのフィールドは、Types.INTEGER としてマップされます。

何が原因か分かりますか?

4

1 に答える 1

0

最後に、生成されたマッピング ファイルに誤りがあることがわかりました。ロングフィールドの場合、整数セッターがありました。これが、変換プロセス中にリフレクション API がこれらのフィールドを書き込み不可と見なした理由です。したがって、ライブラリのバージョンや構成の問題ではありませんでした。

于 2013-02-23T14:24:49.100 に答える