Hibernate加载的问题

ssssss 2010-01-27 09:08:47
现在项目里用到load加载,就只是根据id来加载

但是数据库记录是否取出还得加个判断,看看是否处于删除状态
因为删除记录是通过把删除标记置为删除状态的,就是说不是物理删除而是逻辑删除

那么我该怎么解决呢?
...全文
107 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
islandrabbit 2010-01-29
  • 打赏
  • 举报
回复
关注。
ssssss 2010-01-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wlcacc 的回复:]
在配置类的时候 有一个where属性:指定一个附加的SQLWHERE条件,在抓取这个类的对象时会一直增加这个条件。
<class
...
where="arbitrary sql where condition"

/>
[/Quote]

<class name="com.bc.moduls.Registerinfo" table="REGISTERINFO" schema="LIU" where="REIN_ISDELETE=0">
...
</class>
这样子可以实现我想要的
REIN_ISDELETE是数据库表的列名,开始写着其对应的po类的属性名
后来想想映射<property>还没定义,应该是数据库表的列名
修改过来就OK了
Purking 2010-01-28
  • 打赏
  • 举报
回复
使用 load 加载就是为了减少访问数据库,结果你的判断一定要访问数据库才能决定是否加载 - -||
这么矛盾。。。。。。。

那你试一试使用条件判断加载对象 Hibernate 的条件判断和 HQL 都行,不过记得在 load(T)
T.hbm.xml 的 <class lazy="true" > 属性打开。
ssssss 2010-01-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 purking 的回复:]
使用 load 加载就是为了减少访问数据库,结果你的判断一定要访问数据库才能决定是否加载 - -||
这么矛盾。。。。。。。

那你试一试使用条件判断加载对象 Hibernate 的条件判断和 HQL 都行,不过记得在 load(T)
T.hbm.xml 的 <class lazy="true" > 属性打开。
[/Quote]

经验有限,没有这样做过,能给一个具体的实现么?

如果不用load了,那二级缓存还能生效么?
如果是自己来管理二级缓存,我想我还没有这个能力。。
ssssss 2010-01-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 crazylaa 的回复:]
那你就应该改为根据id和status来加载。全部加载之后再判断status,不觉得浪费吗?有可能一次load的全部都是无效的。
[/Quote]

DAO继承org.springframework.orm.hibernate3.support.HibernateDaoSupport
spring来管理Hibernate

这样findById就直接使用getHibernateTemplate().load(className, id)
不知道怎么来改,最好的结果是不用动DAO框架,不必在业务逻辑中实现
各位大侠给一个具体的方案吧!
xinlan1022 2010-01-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wlcacc 的回复:]
在配置类的时候 有一个where属性:指定一个附加的SQLWHERE条件,在抓取这个类的对象时会一直增加这个条件。
<class
...
where="arbitrary sql where condition"

/>
[/Quote]


wlcacc 2010-01-28
  • 打赏
  • 举报
回复
在配置类的时候 有一个where属性:指定一个附加的SQLWHERE条件,在抓取这个类的对象时会一直增加这个条件。
<class
...
where="arbitrary sql where condition"

/>
道光2008 2010-01-28
  • 打赏
  • 举报
回复
看不懂你的意思
ssssss 2010-01-28
  • 打赏
  • 举报
回复
up
up
crazylaa 2010-01-27
  • 打赏
  • 举报
回复
那你就应该改为根据id和status来加载。全部加载之后再判断status,不觉得浪费吗?有可能一次load的全部都是无效的。
monkeyking1987 2010-01-27
  • 打赏
  • 举报
回复
你把删除的ID值保存起来.
然后在load时先判断是不是已经保存喽.
没有保存就去数据库取
用自己的业务逻辑来解决这问题.

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧