精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-06-01
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-06-01
这个问题我也想搞清楚
|
|
返回顶楼 | |
发表时间:2007-06-01
事务提交后,一级缓存中的数据会被更新到数据库,如果二级缓存设置为读写,那么这份数据会同时更新到二级缓存。
你问的问题相当于:事务提交后一级缓存中的数据怎么同步到数据库。 |
|
返回顶楼 | |
发表时间:2007-06-01
不是的 一级缓存的数据,其实在h执行相关的save,insert的时候已经提交到数据库的脏数据里面了。
我想问的是一级缓存是利用什么机制 来同步二级缓存的,有谁知道吗? |
|
返回顶楼 | |
发表时间:2007-06-01
查询。
脏了丢掉/ |
|
返回顶楼 | |
发表时间:2007-06-01
ellie4c 写道 不是的 一级缓存的数据,其实在h执行相关的save,insert的时候已经提交到数据库的脏数据里面了。
我想问的是一级缓存是利用什么机制 来同步二级缓存的,有谁知道吗? 你说hibernate在执行save操作时会提交数据到数据库,你在哪里看到的结论,你用的是什么数据库,支持事务吗,你不会用的mysql的myisam吧 |
|
返回顶楼 | |
发表时间:2007-06-01
你的意思是不是指 拿一级缓存的PO去查数据库,如果返回对象的话则 更新数据库,如果没返回则 通知二级缓存 丢掉数据?是不是这样的?hibernate也是这样的马?
|
|
返回顶楼 | |
发表时间:2007-06-01
你的意思是不是指 拿一级缓存的PO去查数据库,如果返回对象的话则 更新二级缓存,如果没返回则 通知二级缓存 丢掉数据?是不是这样的?hibernate也是这样的马?
|
|
返回顶楼 | |
发表时间:2007-06-01
ellie4c 写道 你说hibernate在执行save操作时会提交数据到数据库,你在哪里看到的结论,你用的是什么数据库,支持事务吗,你不会用的mysql的myisam吧
这里的提交是脏提交,是提交到事务本身的数据空间里面,真正的提交是在执行tx.commit |
|
返回顶楼 | |
发表时间:2007-06-01
ellie4c 写道 你的意思是不是指 拿一级缓存的PO去查数据库,如果返回对象的话则 更新二级缓存,如果没返回则 通知二级缓存 丢掉数据?是不是这样的?hibernate也是这样的马?
第一,如果你的数据库支持事务,而且默认隔离级别是读写已提交的话(大部分数据库是这样),是不会出现什么脏数据的。可以仔细阅读一下事务和隔离级别,和不同隔离级别所能解决的情况。读写已提交就是解决脏读问题的 第二,一级缓存中存放的就是持久对象,那为什么要查数据库呢,看来你对hibernate管理的对象的3种状态理解不深刻,持久状态的对象就代表数据库中的记录 |
|
返回顶楼 | |