繁体   English   中英

如何使用MyBatis从BYtea列获取byte []?

[英]How can I get byte[] from bytea column with 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员工的设置方法。

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

您需要一个结果映射,该映射将选择要使用的构造函数,或实现自己的TypeHandler。

首先获取Object而不是byte[]

public Object getTypicalTaskMeasurementParameterValue(
    Integer typicalTaskMeasurementId
);

然后将Object更改为byte[]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM