如何从MyBatis的bytea列获取byte []?

时间:2011-12-16 15:07:43

标签: java postgresql ibatis mybatis

我尝试了以下方式。

以下是查询映射:

<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 ...

此外,这个bytea工作人员的setter方法还可以。

2 个答案:

答案 0 :(得分:2)

错误消息说问题很好。 java.lang.Byte上没有默认构造函数。

您需要一个结果图,它将选择使用哪个构造函数,或者实现您自己的TypeHandler。

答案 1 :(得分:-1)

首先获得let yourMessage = "this is your\n message that you want to share !!" let activityItems = [yourMessage] let activityController = UIActivityViewController(activityItems: activityItems , applicationActivities: nil) self.present(activityController, animated: true, completion: nil) 而不是Object

byte[]

然后将public Object getTypicalTaskMeasurementParameterValue( Integer typicalTaskMeasurementId ); 更改为Object