hibernate链接oracle10g插入中文字段问题

时间:2021-12-20 07:31:33
公司有一框架,用的springMVC+spring+hibernate,出现中文字段无法插入的问题,报错如下:
Hibernate: insert into student (AGE, NAME, NICK, ID) values (?, ?, ?, ?)
38:11,046 WARN [org.hibernate.util.JDBCExceptionReporter.logExceptions(JDBCExceptionReporter.java:233)] - <SQL Error: 1461, SQLState: 72000>
38:11,046 ERROR [org.hibernate.util.JDBCExceptionReporter.logExceptions(JDBCExceptionReporter.java:234)] - <ORA-01461: can bind a LONG value only for insert into a LONG column
>
38:11,046 WARN [org.hibernate.util.JDBCExceptionReporter.logExceptions(JDBCExceptionReporter.java:233)] - <SQL Error: 1461, SQLState: 72000>
38:11,046 ERROR [org.hibernate.util.JDBCExceptionReporter.logExceptions(JDBCExceptionReporter.java:234)] - <ORA-01461: can bind a LONG value only for insert into a LONG column
>

经测试oracle驱动没有问题(自己用spring+hibernate写的测试程序),但公司的这个框架一直报这个错(在hibernate中直接操作jdbc可以通过,不过一个项目用了hibernate了还用jdbc进行这些简单的插入更新操作,失去了用hibernate的意义)。
求各位高手解答

8 个解决方案

#1


这个和框架这些没关系,是你数据库的字段太短,插入的数据过长,修改一下字段的长度后再试试

#2


引用 1 楼 zcwgogo 的回复:
这个和框架这些没关系,是你数据库的字段太短,插入的数据过长,修改一下字段的长度后再试试

跟字段长短没关系,插入英文30的长度没问题,中文1个字符都报这错

#3


引用 1 楼 zcwgogo 的回复:
这个和框架这些没关系,是你数据库的字段太短,插入的数据过长,修改一下字段的长度后再试试

而且通过直接调用jdbc可以插入,说明数据表是正确的

#4


什么数据库?

#5


hibernate的方言配置对了么?

#6


org.hibernate.dialect.OracleDialect按的官方文档写的,应该没问题吧oracle10
g

#7


一个是方言。另一个就是你的驱动jar包,一定要从你所连接的数据库中提取

#8


我也遇到了这个问题,发现是驱动包版本的问题。换成新的驱动包 ojdbc14.jar  就解决问题了。

#1


这个和框架这些没关系,是你数据库的字段太短,插入的数据过长,修改一下字段的长度后再试试

#2


引用 1 楼 zcwgogo 的回复:
这个和框架这些没关系,是你数据库的字段太短,插入的数据过长,修改一下字段的长度后再试试

跟字段长短没关系,插入英文30的长度没问题,中文1个字符都报这错

#3


引用 1 楼 zcwgogo 的回复:
这个和框架这些没关系,是你数据库的字段太短,插入的数据过长,修改一下字段的长度后再试试

而且通过直接调用jdbc可以插入,说明数据表是正确的

#4


什么数据库?

#5


hibernate的方言配置对了么?

#6


org.hibernate.dialect.OracleDialect按的官方文档写的,应该没问题吧oracle10
g

#7


一个是方言。另一个就是你的驱动jar包,一定要从你所连接的数据库中提取

#8


我也遇到了这个问题,发现是驱动包版本的问题。换成新的驱动包 ojdbc14.jar  就解决问题了。