java - 如何使用mybatis在postgres中将int[]映射到integer[]

标签 java postgresql mybatis

我的 java pojo 中有一个整数数组 int[] 大小。我将其作为大小 integer[] 存储在 postgres 中。我正在尝试使用 mybatis 使用结果映射来映射它,例如:

<resultMap id="result" type="javaPojo">
   <result column="sizes" jdbcType="ARRAY" property="sizes"/>
</resultMap>

每次我收到如下错误时:

Error parsing SQL Mapper Configuration, Cause java.lang.IllegalStateException: No typehandler found for property sizes.

所有内容都是使用 java 程序生成的,由于公司政策,我无法透露。

最佳答案

收到此错误是因为 typeHandlers 不支持 int[]。更详细的mybatis支持类型可以引用:Type Handlers Mybatis .

现在我为您提供了 2 个解决方案。

  1. 创建新的类型处理程序 here .

  2. 更改int[]List<Integer> .

示例代码:

只需将 resultType 声明为您想要的原始类型,在您的情况下是 Integer。它将作为列表返回。

<select id="getPrice" resultType="java.lang.Integer">
  select product_price from products
</select>

在映射器界面中,您应该会返回一个 Long 列表。

List<Integer> getPrice();

我从这个 link 克隆上面的例子

关于java - 如何使用mybatis在postgres中将int[]映射到integer[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57519542/

相关文章:

postgresql - 升级到 Ubuntu 18.04 后 Gitlab 无法启动

postgresql - 比较 PostgreSQL 中的字符串

mybatis - myBatis 中 ArrayList 的类型处理程序

web - 无法解析配置 ':runtime'的所有依赖项

java - 如何使用 jtextfield 在 jtable 中搜索数据?

java - 桌面应用程序应该压缩 jar 文件吗?

java - catch 语句之前的 return 语句

java - 从时间戳构造java.util.Date对象时发生时区问题

mysql - 如何创建Mysql动态带条件查询语句