最近用Oracle的时候出的一个问题

最近用Oracle的时候存中文出现一个问题,以前存中文都没出现过,现在我很郁闷,问题是这样的:

当我要保持一个Log对象是,Log是Java类,表示的时错误信息,里面就一个Info总段,保存的时候出现:ORA-01438: 值大于为此列指定的允许精度,但我这个字段是4000字节的,怎么可能呢,而且info的长度也就10多个汉字吧,网上一查有人说是因为字符集的问题,遇上我就这样处理:

    Log log = new Log();

     xxxxx

        一些setter

     xxxxx

        logManager.saveWeatherLog(log);

无论我用utf-8,gbk,gb2312照样出这问题,不知道是怎么回事。

 

 

最后我请教项目经理了,这个问题太隐蔽了,项目经理经过一番调试、侦查,终于在下午的时候得出结论并解决了问题,原来是我在setter的过程中查询了另一张表,用hibernate修改了对应的实体,虽然我logManager.saveWeatherLog(log);的时候没有saveOrUpdate其他任何东西,但由于事务的原因,Hibernate自己去saveOrUpdate了,因此就导致了上述问题

posted on 2010-08-23 10:29  huoyj  阅读(275)  评论(0编辑  收藏  举报

导航