2011-12-16 130 views
2

私は次の方法で試しました。ここでMyBatisでbytea列からbyte []を取得するにはどうすればよいですか?

は、クエリのマッピングである:ここで

<select id="getTypicalTaskMeasurementParameterValue" 
      parameterType="Integer" 
      resultType="byte[]"> 
    SELECT value 
    FROM typical_task_measurements_parameter_values 
    WHERE id_typical_task_measurement = #{typicalTaskMeasurementId} 
</select> 

はメソッドです:

public byte[] getTypicalTaskMeasurementParameterValue(
    Integer typicalTaskMeasurementId); 

そして、ここではそれに対してユニットテストを実行しようと、私が得たエラーです:

nested exception is org.apache.ibatis.reflection.ReflectionException: 
Error instantiating class [Ljava.lang.Byte; with invalid types() or values(). 
Cause: java.lang.NoSuchMethodException: [Ljava.lang.Byte;.<init>() 
at ... 

さらに、このバイトスタッフの設定メソッドはokです。

答えて

2

エラーメッセージには問題が非常によく示されています。 java.lang.Byteにはデフォルトのコンストラクタはありません。

使用するコンストラクタを選択する、または独自のTypeHandlerを実装する結果マップが必要です。

+0

ありがとうございました。このような一般的な状況では、カスタムハンドラーを書く傾向がありますが、この列にJSONデータがあるため、私の場合は多分それが良いかもしれません。だから、私はこの解決策をチェックし、あなたの答えを承認するだろう。 –

関連する問題