Mybatis pg数据库无法映射到实体类

Mybatis pg数据库数组无法映射到实体类

错误日志

1
2
3
java.lang.IllegalArgumentException: Result Maps collection does not contain value for


解决方案

这里给到的解决方案是设置一个拦截器来处理数据的转换

1
2
3
4
5
6
7
8
9
10
11
12
public class IntegerArrayTypeHandle extends BaseTypeHandler<Integer[]> {
...
private Integer[] getIntegers(Array array) throws SQLException {
if (array == null) {
return null;
}
Object[] arr = (Object[]) array.getArray();
return Arrays.stream(arr).filter(k-> k!= null)
.map(k->Integer.valueOf(k.toString()))
.toArray(Integer[]::new);
}
}
1
2
3
4
<resultMap id="类型的名称" type="指定的类">
...
<result column="数据库中对应的名" property="实体类中对应的名" typeHandler="拦截器的位置"></result>
</resultMap>

这样处理就可以完成数据的转换处理


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!