博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ORA-00932: 数据类型不一致: 应为 NUMBER, 但却获得 BINARY
阅读量:6235 次
发布时间:2019-06-22

本文共 758 字,大约阅读时间需要 2 分钟。

hot3.png

这个错误困扰了我一天的时间,现在写出来希望以后大家遇到这样的错误时,希望对大家有帮助。首先介绍一下使用的情景,我的项目的spring和hibernate搭建服务端对数据库进行插入的操作,由于历史原因,所操作的数据表的列过多,大概超过100个字段,所以决定利用hibernate Tools进行代码生成。生成mapping文件后,进行插入操作时就出现了这个错误:ORA-00932: 数据类型不一致: 应为 NUMBER, 但却获得 BINARY;

看到这个错误第一反应当然是找google大神,结果找了几篇stackoverflow,发现出现的问题不太相似,遂放弃。没办法决定利用笨办法一个一个试了,这个数据类型错误首先让人联想到的是:将null赋给了某个number类型的字段,结果证明这样的想法很荒诞。利用hibernate进行orm时,任何number所对应的Integer、Long 等这些wrapper类型,如果被赋值为null,hibernate是有自身的机制进行操作,因此不存在这样的问题,经过实验使用也否定了这个原因。后来又看到一篇博客,说date类型赋值为null会出现这样的问题,结果试了一下貌似不会。仔细一想抛出的错误是获得了binary,能够接收到binary最为可能性的途经就是某个字节流或者序列化的类,沿着这个思路,检查了一下hbm.xml文件,发现oracle中的timestamp类型都被映射成了Serializable类型,遂觉问题之所在,看来使用自动生成真的需要小心一点,于是改动了一下*.reveng.xml

按图索骥把类型映射改为date后,问题解决。

转载于:https://my.oschina.net/pharosa/blog/170281

你可能感兴趣的文章
润乾集算报表呈现输出之页内统计
查看>>
【MVVM】- Avalon 属性监控、解除监控、子孙元素监控、统一属性监控
查看>>
Python开发中的cookie 学习
查看>>
Jmeter中的几个重要测试指标释义
查看>>
Thumbnailator java图片压缩,加水印,批量生成缩略图
查看>>
【VMCloud云平台】SCSM(九)SCSM创建服务产品
查看>>
JSTL中的fn函数
查看>>
16_Shell语言———for循环元素列表的生成法则
查看>>
计算机学习经典书籍
查看>>
使用beanuti将bean属性转成map
查看>>
apache以mod_proxy实现负载均衡集群
查看>>
dsfsdfsdfsdfsdfsdfsdf
查看>>
linux Platform设备驱动
查看>>
侦探推理小故事
查看>>
IPTV监测和测试设备
查看>>
rsync添加多模块,客户端推送出错!
查看>>
如何使用 Java8 实现观察者模式?(上)
查看>>
网络基础之--IP数据报、分片策略、路由表
查看>>
Spread for Windows Forms高级主题(6)---数据绑定管理
查看>>
关于ComponentOne For WinForm 的全新控件 – DataFilter数据切片器(Beta)
查看>>