当前位置:首页 > 开发 > 编程语言 > Hibernate > 正文

记一次hibernate无法取得jdbc插入数据的问题折腾

发表于: 2010-09-22   作者:酷的飞上天空   来源:转载   浏览:
摘要: 大概情况如下 前端:struts2+spring3+hibernate3 + mysql 主要用于取得数据库的数据显示在页面,含有少量的数据更新操作。 后端:jdbc + mysql 用于接收某客户端发来的数据(socket通信),并存入数据库,供前端显示。   问题: jdbc可以成功插入数据库,但前端无法取得jdbc插入的数据,而前端自己的更新操作均无问题。 经查看数据库

大概情况如下

前端:struts2+spring3+hibernate3 + mysql 主要用于取得数据库的数据显示在页面,含有少量的数据更新操作。

后端:jdbc + mysql 用于接收某客户端发来的数据(socket通信),并存入数据库,供前端显示。

 

问题:

jdbc可以成功插入数据库,但前端无法取得jdbc插入的数据,而前端自己的更新操作均无问题。

经查看数据库,确定jdbc确实插入了数据库,但hibernate取得的数据列表中就是没有jdbc插入的数据。

同样,jdbc对数据库中的某条数据进行更新操作,经确定已更新到数据库中。但前端hibernate取的数据仍然是未更新前的数据。hibernate的二级缓存未开启,所以排除缓存的原因,而且控制台打印的确实有sql查询语句,也说明并未使用缓存。

 

通过对照以前一个项目,发现我使用是hibernate的默认数据库连接池,未使用dbcp或c3p0。

 

尝试一:偷懒了下,把hibernate的数据库配置,移到spring中。

 

结果:jdbc插入的数据可以被hibernate取得,但jdbc对已有数据的更新,hibernate依旧取到的是未更新前的数据

 

一番折腾后再次尝试:

 

尝试二:为spring的aop事务添加一个默认匹配全部方法的配置,以前只配置了更新,添加,删除的方法

添加匹配其他方法配置 如下

<tx:method name="*" read-only="true"/>

 

结果:OK,hibernate可以正确读取jdbc插入和更新的数据了。

 

最后把spring的数据库配置改为原来的使用hibernate默认的链接池配置,未再出现前面的问题。

 

看来问题确实出在,事务的配置上了。 如果不使用jdbc操作数据库恐怕还发现不了这个问题。。。

 

 

记一次hibernate无法取得jdbc插入数据的问题折腾

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
摘自网上的一段解决办法。 原文:http://blog.163.com/me_wxx/blog/static/13519139120105152638477
发一下牢骚和主题无关: 这几天应用cocos2d-x自己做个小游戏,在应用过程当中碰到不少问题,在这里
今天一个同事问我nginx无访问正常访问且权限全都给的: 看下这里 这里是nginx访问控制日志: 这里是
--做测试的时候使用。 --缺点:结果集的数量,类型都要一样。 INSERT INTO Student ( StudentID, St
周末有项目反应有系统启动webseal的时候无法访问门户,远程过去,现场人员演示问题: 1、启动服务器
昨天 同事在本机清理数据库表时,连接到了生产机,误删了二十几张表,幸好是晚上加班的时候删除的,
引子 最近新上了9107渠道的实验。 从实验方法上,相比于之前的9105渠道只是简单地对过去6小时的正例
前言 最近一段时间,由于机房需要搬迁调整,我们hadoop集群所受到的影响机器无疑是数量最多的,如何能
这几天使用cocos2d-x自己做个小游戏,在使用过程中遇到不少问题,在这里记录下来,做个总结,也希望
如果你遇到如下问题,请继续往下看: 1)双系统引导不了多个系统? 2)ubuntu/win7的系统引导被破坏
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号