vo po并不是一个严格的不相容的东西。套用夏昕的hibernate开发指南里的话就是:
VO和PO的主要区别在于:
Ø VO是独立的Java Object。
Ø PO是由Hibernate纳入其实体容器(Entity Map)的对象,它代表了与数
据库中某条记录对应的Hibernate实体,PO的变化在事务提交时将反应到实
际数据库中。
如果一个PO与Session对应的实体容器中分离(如Session关闭后的PO),那么
此时,它又会变成一个VO。

解决方案 »

  1.   

    Hibernate对象的3种状态:
    1.Transient(自由状态)  ----vo
          此时的实体对象和数据库中的记录无关联,只是一个普通的JavaBean。
    2.Persistent(持久状态)  ----PO
          此时的实体对象和数据库中的记录有关联,其变更将由Hibernate固化到数据库中。该实体对象处于由Hibernate框架所管理的状态。
    3.Detached(游离状态) ----VO
          处于Persistent状态的对象,其对应的Session实例关闭之后,那么,此对象就处于"Detached"状态。Detached状态和Transient状态的区别在于Detached状态的对象可以再次与某个Session实例相关联而成为Persistent对象
      

  2.   

    vo 作为控制器转换的实体对象
    po 作为持久层转换的实体对象