"分页查询用IBATIS查出ID 然后在用HIBERNATE载入"为什么要这样?

解决方案 »

  1.   

    分页查询用IBATIS查出ID
    然后在用HIBERNATE载入
    为什么要这样做啊
    不过到现在我也想不出什么好的解决
    有高手的话,也没你这种经验啊
    还是期待一下把
      

  2.   

    差点没喷出来。你用IBATIS查出ID然后在用HIBERNATE载入
    我只能说你真是强人。
      

  3.   

    我觉得你要么只用hibernat,要么只用ibatis,不然,你以后维护都是个大问题,而且现在出问题你比较难找到是那里出的,也增加了项目的复杂性.不必要这么做,要分页用两个都可以实现的
      

  4.   


    就是只用 只用HIBERNTE,也会碰到这个问题的。
    你可以只修改其中一个表来试试,不过要一个大表。
    只用HIBERNATE来查询,也是有两种做法。
    一种就是直接利用hibernate自带的分页,这种就很简单一些了。
    from tbClass where id .... 然后,set 分页。
    网上有很多的一些比较集成的写法。但是 在JAVA EYE上可以看到。仍然有些高手们,
    还在使用
    select id from tbClass where 子句。然后,再get(id)
    或者叫load(id)
    这种写法。其实一点也不奇怪。
    因为一般在高手来说,GETID,这种是不用写代码的。用某些框架直接出来的。
    而一些表的字段又多。
    select id1 ,id2 然后,**的复杂语句,对于数据库来说,
    比select id from 当然要快的多。
    大家有兴趣的可以去查查ORACLE的索引呀,SQL优化什么的
    更加重要的是。load(id)这种可以利用CACHE的一些东东来实现。所以总体而言。
    这种先取一次ID,再取对象的做法,大有优化的空间。但是,如果写死了。hibernate .一次取出分页的对象list
    那么,没有可做文章的地方了。
    快了也是它,慢也也只能这样,
    程序没有优化的空间。
    只能再去弄CPU,内存,数据库什么一些程序之外的东西了。大家还知道JIVE这个有名的论坛源码吧,
    他就是先取ID,然后,再用ID取对象的。如果这这样先取一次。再取对象的话。
    那先用SQL,还是用HQL来取ID,更易效率高呢?
    我感觉还是ibatis来的更直接呢。楼主的问题是一个大问题。
    应该找像我这样的“高手”用工具调试根踪一下。
    找到问题了。才好下结论来修改什么地方。呵呵,见笑了。你可以使用jprofiler一类的东东来跟踪一下。
      

  5.   

    SUN的口号不是提高硬件的性能来解决其性能问题吗嘛!
      

  6.   

    分页查询用IBATIS查出ID
    然后在用HIBERNATE载入感觉怪怪的
    为什么要这么做那
      

  7.   

    原因楼主也说了,
    那就是,分页查询用IBATIS查出ID 这部分已经有了。
    而工程的后期可能是总修改数据库,
    IBATIS,修改对象比HIBERNATE就麻烦多了。所以后期HIBERNATE就加入工程中了。其实在HIBERNATE2的时候,SQL写在HQL里就是很麻烦的。
    到了HIBERNTATE3好多了。所以,IBATIS也就会慢慢淡出市场的。因为ibatis所有的优势,hibernte3都有了。
    当然这是我的个人看法!,但是楼主的问题绝对不会是两种东西加一起就性能大大下降的。
      

  8.   

    Hibernate中有分页的实现,
    setFirstResult();
    setMaxResult();
    就可以达到
      

  9.   

    如果是数据量巨大的话,虽然有点有不像面向对象 但是还是存储过程比较合适,把数据库优化一下.数据量一般的话 hibernate还是不错地
      

  10.   

    并发7个去点分页的,如果数据过千就会挂掉.这个真的是很严重的问题应该不是hibernate的问题 估计你是程序的问题,你要是说数据过千万的话 那又是另一回事了