Postgres hstore cast工作错误

时间:2016-01-26 12:24:19

标签: java postgresql lambda casting hstore

以下行与Java 8不兼容。 (Map<Integer, BigDecimal>) resultSet.getObject("hstore_field");

hstore键和值作为文本存储在Postgres DB中。尽管从resultSet接收的对象被转换为Map<Integer, BigDecimal>并且在编译期间没有收到警告/错误,但HashMap中保留的数据类型为<String, String>。 我已经使用了BigDecimal的instanceof进行了测试并得到了错误。 在执行

时,更有趣的lambda方式在运行时失败了
hstoreMap.foreach((k,v)-> System.out.println(k + " " +v));

所以,问题很明显 - 投射不会这样。因此我转换为Map,然后将map转换为所需类型。 无论如何,这种错误是什么?

1 个答案:

答案 0 :(得分:0)

我不是百分百肯定,但这是我能为你找到的:

http://www.postgresql.org/message-id/4FAB8796.40904@nitorcreations.com

看起来hstore支持仅限于HashMap<String, String> 包装对象。无论如何,我不会把它称为错误。