现在项目里用到load加载,就只是根据id来加载但是数据库记录是否取出还得加个判断,看看是否处于删除状态
因为删除记录是通过把删除标记置为删除状态的,就是说不是物理删除而是逻辑删除那么我该怎么解决呢?

解决方案 »

  1.   

    你把删除的ID值保存起来.
    然后在load时先判断是不是已经保存喽.
    没有保存就去数据库取
    用自己的业务逻辑来解决这问题.
      

  2.   

    那你就应该改为根据id和status来加载。全部加载之后再判断status,不觉得浪费吗?有可能一次load的全部都是无效的。
      

  3.   

    使用 load 加载就是为了减少访问数据库,结果你的判断一定要访问数据库才能决定是否加载 - -|| 
    这么矛盾。那你试一试使用条件判断加载对象 Hibernate 的条件判断和 HQL 都行,不过记得在 load(T)
    T.hbm.xml 的 <class lazy="true" > 属性打开。
      

  4.   


    DAO继承org.springframework.orm.hibernate3.support.HibernateDaoSupport
    spring来管理Hibernate这样findById就直接使用getHibernateTemplate().load(className, id)
    不知道怎么来改,最好的结果是不用动DAO框架,不必在业务逻辑中实现
    各位大侠给一个具体的方案吧!
      

  5.   


    经验有限,没有这样做过,能给一个具体的实现么?如果不用load了,那二级缓存还能生效么?
    如果是自己来管理二级缓存,我想我还没有这个能力。。
      

  6.   

    在配置类的时候 有一个where属性:指定一个附加的SQLWHERE条件,在抓取这个类的对象时会一直增加这个条件。
    <class 
    ...
     where="arbitrary sql where condition"/>
      

  7.   


    <class name="com.bc.moduls.Registerinfo" table="REGISTERINFO" schema="LIU" where="REIN_ISDELETE=0">
    ...
    </class>
    这样子可以实现我想要的
    REIN_ISDELETE是数据库表的列名,开始写着其对应的po类的属性名
    后来想想映射<property>还没定义,应该是数据库表的列名
    修改过来就OK了