论坛首页 入门技术论坛

两进程修改数据库,不同步问题的解决办法

浏览 7045 次
该帖已经被评为新手帖
作者 正文
   发表时间:2009-07-01   最后修改:2009-07-01
只能说这个设计太搓了,明知道有别的进程还需要修改数据库,还会用上hibernate。
0 请登录后投票
   发表时间:2009-07-01  
没搞明白,session是一级缓存,你每次查询如果重新建个session,再查询,会出现你说的情况吗?

如果不显示打开事务,每一次执行sql语句应该都是自动启动一个事务啊
0 请登录后投票
   发表时间:2009-07-01  
触发器 -> Java -> Send Message(JMS) -> MBean or Message Process Center
0 请登录后投票
   发表时间:2009-07-01  
dengtl 写道
触发器 -> Java -> Send Message(JMS) -> MBean or Message Process Center


oracle才能这么玩吧。
0 请登录后投票
   发表时间:2009-07-01  
这么累阿,用hibernate乐观锁
0 请登录后投票
   发表时间:2009-07-01  
为什么不用个标签,只要查标签就可以知道数据库里改动没有,用在数据库里做这么多的查询
0 请登录后投票
   发表时间:2009-07-01  
具体问题的原因我也没有去深入研究,但是采用给查询也加上事务的方法确实可以解决我的问题,呵呵
我有点急功近利了
0 请登录后投票
   发表时间:2009-07-01   最后修改:2009-07-01
你犯下最致命的错误的你根本不了解hibernate的工作方式,很明显在一个线程里面使用session总是命中一级缓存,
你修改后的代码能够成功的关键在这里
dao.getSession().close(); 

与事务无关,就算启用事务,对象还是在session缓存里面。

解决方式很多,比如清一级缓存,你选择了最差的一种方式。

再多说一句,查询怎么都不加事务?这毛病得改改。
0 请登录后投票
   发表时间:2009-07-01  
ray_linn 写道
只能说这个设计太搓了,明知道有别的进程还需要修改数据库,还会用上hibernate。
为什么有别的进程还需要修改数据库就不能用hibernate,只要不启用二级缓存就OK。
0 请登录后投票
   发表时间:2009-07-01  
rain2005 写道
ray_linn 写道
只能说这个设计太搓了,明知道有别的进程还需要修改数据库,还会用上hibernate。
为什么有别的进程还需要修改数据库就不能用hibernate,只要不启用二级缓存就OK。


无非以性能为代价呗。
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics