论坛首页 Java企业应用论坛

Hibernate Iterator JCS分析

浏览 22636 次
该帖已经被评为精华帖
作者 正文
   发表时间: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  
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;
}


这是我的使用方式,有点土,不知道有没有什么好的办法。请大虾看看。
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企业应用版

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