java.lang.ClassCastException: org.postgresql.util.PGobject cannot be cast to java.util.Map
java使用Map<String, Object> plsql使用 hstore 查出来的时候typehander出现无法匹配的情况
用于GET数据库记录的时候出现这个问题:
1.后面调试出现一个诡异的情况,就是POST或者PATCH提交之后马上进行GET 是可以查出来的,解析也没有问题,但是如果重启服务或者一上来就进行GET就会报这个错误。
2.也就是说是可以的!进行DEBUG操作,发现在TypeHandler里面进行转换时候,跳进去一个jdbcType的匹配的时候发现值居然是"xxx.hstore" 导致类型匹配不成功,xxx是我建PLSQL的时候建的 SCHEMA,并且hstore extension也建在这个 schema下面。
3. 重现一下上面的诡异情况:POST一下再GET,DEBUG进入类型匹配,这时jdbcType显示是"hstore",继续执行,OK,拿出来了。
4.删掉xxx下的hstore extension,重建在整个数据库上面(不是public),再测试一下,ok。
5.为什么会出现POST马上再GET的情况就是hstore也不是特别清楚,可能是缓存的问题?【继续占个坑先

探讨了在Java中处理PostgreSQL的hstore类型时遇到的ClassCastException异常,特别是当使用Map<String, Object>来映射hstore字段时的问题。文章分析了不同情况下异常的表现,并给出了可能的解决方案。
1万+

被折叠的 条评论
为什么被折叠?



