论坛首页 Java版 Hibernate

Hibernate Iterator JCS分析

浏览 16601 次
该帖已经被评为精华帖
作者 正文
最后更新时间:2004-03-31
robbin 写道


最佳的方式:第一次访问使用List,快速填充JCS,以后访问采用Iterator,充分利用JCS。


这不是太爽了!
怎么样才能实现这种功能呢?请robbin指点。
    是不是我要写两个查询的方法。先判断cache里面有没有这个对象,有的话就用iterator的方法,没有就用list的方法。应该不是吧?
   
最后更新时间:2004-04-08
如果数据库在list之后更新了,那jcs里就是脏数据了。不可靠。
   
0 请登录后投票
最后更新时间:2004-04-08
这个jcs应该是hibernate的内部实现机制, 不用特意调用的吧
   
0 请登录后投票
最后更新时间:2004-04-08
maohy 写道
robbin 写道


最佳的方式:第一次访问使用List,快速填充JCS,以后访问采用Iterator,充分利用JCS。


这不是太爽了!
怎么样才能实现这种功能呢?请robbin指点。
    是不是我要写两个查询的方法。先判断cache里面有没有这个对象,有的话就用iterator的方法,没有就用list的方法。应该不是吧?


我的做法就是直接用iterator,反正第一次慢就慢点。就一次嘛。
   
0 请登录后投票
最后更新时间:2004-04-14
jaqwolf 写道
我的做法就是直接用iterator,反正第一次慢就慢点。就一次嘛。


谢谢jaqwolf,这种方式我试过,应该是可以的。不过就是感觉有点土。:)
   
0 请登录后投票
最后更新时间:2004-04-26
[code:1]public static List getAllNews{       
        DbSession dbSession = null;
        List list = null;
        String sql = "select ns from ns";
        dbSession = Db.openSession();
        Iterator iterator = dbSession.iterate(sql);
        while (iterator.hasNext()) {
              News news = (News) iterator.next();
              list.add(news);
         }
        return list;
}[/code:1]

这是我的使用方式,有点土,不知道有没有什么好的办法。请大虾看看。
   
0 请登录后投票
最后更新时间:2004-06-10
我也用的是Iterator iterator = dbSession.iterate(sql);
ROBBIN说的我不明白
robbin 写道

最佳的方式:第一次访问使用List,快速填充JCS,以后访问采用Iterator,充分利用JCS。

这个怎么用啊,贴些代码出来看看阿
   
0 请登录后投票
最后更新时间:2004-06-10
请教一个问题~~

如果使用Iterator iter =list.Iteraotr(),
采用
while(iter.hasNext()){
iter.next();
}
遍历一次之后,

如果再次使用Iterator iter =list.Iteraotr(),
则取不到数据~~

按一般的理解,是不是因为iter到了尾部?
很多Collection类都是这样
比如Collection.Iterator()
ArrayList.Iterator()什么的,都有类似问题?
   
0 请登录后投票
最后更新时间:2004-06-15
ayomimai 写道
如果数据库在list之后更新了,那jcs里就是脏数据了。不可靠。


我也怀疑它的可靠性。
按robbin说的JCS和DB的同步机制,这种情况是可能发生的。
   
0 请登录后投票
最后更新时间:2004-06-22
nesta 写道
ayomimai 写道
如果数据库在list之后更新了,那jcs里就是脏数据了。不可靠。


我也怀疑它的可靠性。
按robbin说的JCS和DB的同步机制,这种情况是可能发生的。

jcs 既然是cache 机制,而且屏蔽细节,就一定有抛弃脏数据的机制。所以,如果数据被修改写回数据库的时候,应该有根据 id 进行 jcs 中的相应抛弃。
   
0 请登录后投票
论坛首页 Java版 Hibernate

跳转论坛:
JavaEye推荐