Hibernate是ORM的
PO层的强大已经可以脱离Session所以没必要啊至于为什么改jdbc实在是不知道...ORM的设计模式挺好的

解决方案 »

  1.   

    如果是EJB,那么EntityBean代表了PO, DTO代表了VO
    但是在Hibernate detached,PO都是POJO所以没有必要再去分VO/PO,只有一个O啦,你可以叫他Entity或者BO都行。
      

  2.   

    Hibernate一般要用DTO,不然会出现许多意想不到的问题我的做法是在每个dto中都写一个构造方法,按需导入po中的数据,也可以设定一个参数指定详细等级。
    public VO(PO,int detail)
      

  3.   

    同意po,vo做为一层,只到action,
      

  4.   

    >>Hibernate一般要用DTO,不然会出现许多意想不到的问题
    你说的对,但是detached应该没什么问题吧?
      

  5.   

    detached也有问题,我以身试法了的
      

  6.   

    >>detached也有问题,我以身试法了的
    呵呵,以身试法了啊,能帮忙给讲讲什么情况么?
      

  7.   

    Hibernate一般要用DTO,不然会出现许多意想不到的问题说说看,我就是不明白这点,谢谢指教
      

  8.   

    使用DTO的目的是防止PO被直接传到view层,从结构上减轻了view和持久层间的藕合另外,PO是有状态的,如果传到view层被修改后再传回持久层,持久层并不会预期到这样的改变,就会出错,有很多种情况Hibernate都会抛出会异常,比如save()一个带主键的POdetached的po其实并没有完全的脱离hibernate,和dto不一样。
    我曾经把po放入servletContext域,但在某个时候对其进行操作时却经常报错,不得不改用dto代替,我现在业务层和view层间的数据交换只用DTO。
      

  9.   

    我好象都没遇到过这种问题虽然按照设计模型说,po不能传到view层,但是hibernate论坛上又说,没什么关系,我也是这么用的,用了快一年,没什么问题出现比如save()一个带主键的PO,怎么说?可以举个例子吗
      

  10.   

    >>我曾经把po放入servletContext域,但在某个时候对其进行操作时却经常报错,
    呵呵,没遇到过,什么错啊另外,个人觉得Hibernate的第三方类库倚赖度太高了,那么多jar.
    有时候觉得还不如用iBatis来的简单,或者将来观望一下EJB3
      

  11.   

    这个在java视线上有说的很详细.
    你google一下:java视线 就能去找到
      

  12.   

    to hm8328():
    只不过是一个论坛阿,那里有结论?