gpt4 book ai didi

java - 如何在 getJdbcTemplate().query 中将 postgresql 数组转换为 java 数组

转载 作者:行者123 更新时间:2023-12-02 09:25:50 24 4
gpt4 key购买 nike

我正在使用 spring 与 postgresql 交互。这是我的问题。

人具有三个属性:

  1. 名称(字符串)
  2. 爱好(字符串[])
  3. 性别( boolean 值)

如果我尝试使用下面的方法从数据库中获取人员列表

List<Person> person=  getJdbcTemplate().query("select * from person where name=?",new BeanPropertyRowMapper<person>(Person.class),name);

编译器提示

Failed to convert property value of type 'org.postgresql.jdbc.PgArray' to required type 'java.lang.String[]' for property 'hobbies';

有没有办法将pgarray映射到java数组?

最佳答案

我没有找到如何用jdbctemplate + pgArray解决问题。所以我写了一些修复程序。
您可以使用自己的ColumnMapRowMapper

public class ColumnRawMapper extends ColumnMapRowMapper {
@Override
protected Object getColumnValue(ResultSet rs, int index) throws SQLException {
Object obj = rs.getObject(index);
if (obj instanceof PgArray) {
return ((PgArray) obj).getArray();
}
return super.getColumnValue(rs, index);
}
}

Map<String, Object> ggWp = jdbcTemplate.queryForObject("select * from temp where ss='3'", new ColumnRawMapper());

关于java - 如何在 getJdbcTemplate().query 中将 postgresql 数组转换为 java 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58355234/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com