Hibernate加载的问题 现在项目里用到load加载,就只是根据id来加载但是数据库记录是否取出还得加个判断,看看是否处于删除状态因为删除记录是通过把删除标记置为删除状态的,就是说不是物理删除而是逻辑删除那么我该怎么解决呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你把删除的ID值保存起来.然后在load时先判断是不是已经保存喽.没有保存就去数据库取用自己的业务逻辑来解决这问题. 那你就应该改为根据id和status来加载。全部加载之后再判断status,不觉得浪费吗?有可能一次load的全部都是无效的。 使用 load 加载就是为了减少访问数据库,结果你的判断一定要访问数据库才能决定是否加载 - -|| 这么矛盾。那你试一试使用条件判断加载对象 Hibernate 的条件判断和 HQL 都行,不过记得在 load(T)T.hbm.xml 的 <class lazy="true" > 属性打开。 DAO继承org.springframework.orm.hibernate3.support.HibernateDaoSupportspring来管理Hibernate这样findById就直接使用getHibernateTemplate().load(className, id)不知道怎么来改,最好的结果是不用动DAO框架,不必在业务逻辑中实现各位大侠给一个具体的方案吧! 经验有限,没有这样做过,能给一个具体的实现么?如果不用load了,那二级缓存还能生效么?如果是自己来管理二级缓存,我想我还没有这个能力。。 在配置类的时候 有一个where属性:指定一个附加的SQLWHERE条件,在抓取这个类的对象时会一直增加这个条件。<class ... where="arbitrary sql where condition"/> <class name="com.bc.moduls.Registerinfo" table="REGISTERINFO" schema="LIU" where="REIN_ISDELETE=0">...</class>这样子可以实现我想要的REIN_ISDELETE是数据库表的列名,开始写着其对应的po类的属性名后来想想映射<property>还没定义,应该是数据库表的列名修改过来就OK了 为什么给增加了键盘监听器后,按下键盘都没反应 java怎样精确到小数点后20位? Servlet问题,求解[急] Struts2 使用execAndWait拦截器 在action中怎么获取 request啊!?? hibernate DetachedCriteria对象 所得结果集问题 一世界500强面试题 Jacob性能问题 请教:奇怪的问题 连接池关闭问题 关于jboss对数据库操作的疑问 求ant脚本执行sql问题。 XFire 客户端调用服务器请求
然后在load时先判断是不是已经保存喽.
没有保存就去数据库取
用自己的业务逻辑来解决这问题.
这么矛盾。那你试一试使用条件判断加载对象 Hibernate 的条件判断和 HQL 都行,不过记得在 load(T)
T.hbm.xml 的 <class lazy="true" > 属性打开。
DAO继承org.springframework.orm.hibernate3.support.HibernateDaoSupport
spring来管理Hibernate这样findById就直接使用getHibernateTemplate().load(className, id)
不知道怎么来改,最好的结果是不用动DAO框架,不必在业务逻辑中实现
各位大侠给一个具体的方案吧!
经验有限,没有这样做过,能给一个具体的实现么?如果不用load了,那二级缓存还能生效么?
如果是自己来管理二级缓存,我想我还没有这个能力。。
<class
...
where="arbitrary sql where condition"/>
<class name="com.bc.moduls.Registerinfo" table="REGISTERINFO" schema="LIU" where="REIN_ISDELETE=0">
...
</class>
这样子可以实现我想要的
REIN_ISDELETE是数据库表的列名,开始写着其对应的po类的属性名
后来想想映射<property>还没定义,应该是数据库表的列名
修改过来就OK了