浏览 23146 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2004-11-21
因为考虑到业务持久层都继承它的话,因为多继承的问题,就不能继承其它的类,比较别扭,还有封装不是很完善等原因,所以自己封装了一个比较完善的BaseHibernateDao。 那么Spring的亮点之一 --事务管理,是不是就没办法用了呢? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2004-11-21
当然不是,建议你看一遍HibernateDaoSupport的sourcecode,实际上HibernateDaoSupport的sourcecode很简单的,就是提供了一些方便的封装而已,你完全可以甩开HibernateDaoSupport自己干,实际上你如果看看HibernateTemplate的sourcecode的话,你也可以甩开HibernateTemplate。只要你仔细看看这两个类的sourcecode,搞明白他们是怎么运作的,你完全可以自己写,不必依赖他们。
|
|
返回顶楼 | |
发表时间:2004-11-22
robbin 写道 当然不是,建议你看一遍HibernateDaoSupport的sourcecode,实际上HibernateDaoSupport的sourcecode很简单的,就是提供了一些方便的封装而已,你完全可以甩开HibernateDaoSupport自己干,实际上你如果看看HibernateTemplate的sourcecode的话,你也可以甩开HibernateTemplate。只要你仔细看看这两个类的sourcecode,搞明白他们是怎么运作的,你完全可以自己写,不必依赖他们。
今天看了HibernateDaoSupport,HibernateTemplate和相关源码,觉得如果我想借助Spring的Hibernate事务管理,就必须让我的BaseHibernateDao继承HibernateAccessor(HibernateTemplate也继承该类,主要是定义一些共同的属性,像SessionFactory 和 flushing behavior), 然后在BaseHibernateDao里面的Save , update ,delete 方法必须封装如下(来自HibernateTemplate): public Serializable save(final Object entity) throws DataAccessException { return (Serializable) execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { checkWriteOperationAllowed(session); return session.save(entity); } }); } 感觉还不如直接就extends HibernateTemplate,不知大家这方面有没有什么比较好的做法。 |
|
返回顶楼 | |
发表时间:2004-11-22
一个setHibernateTemplate方法不就可以了吗?何必一定要想着继承呢?
|
|
返回顶楼 | |
发表时间:2004-11-23
HibernateDaoSupport中的方法可以自己来写,不多
而HibernateTemplate可以通过楼上的方法来实现,包装一下就好了 |
|
返回顶楼 | |
发表时间:2004-11-30
反正都要继承,自己写一个基类继承HibernateDaoSupport。使用自己的基类,如果真要脱离Spring时,只要将HibernateDaoSupport改掉不就OK了。何必那么麻烦。
|
|
返回顶楼 | |
发表时间:2004-12-01
我就是采用楼上moxie的做法,感觉还可以。
|
|
返回顶楼 | |
发表时间:2004-12-09
moxie 写道 反正都要继承,自己写一个基类继承HibernateDaoSupport。使用自己的基类,如果真要脱离Spring时,只要将HibernateDaoSupport改掉不就OK了。何必那么麻烦。
我也同意这种方法, 通过组合的方式有什么好处呢? 反而会更麻烦 |
|
返回顶楼 | |
发表时间:2007-03-21
同意楼上的
|
|
返回顶楼 | |
发表时间:2007-03-21
Morgan0916 写道 moxie 写道 反正都要继承,自己写一个基类继承HibernateDaoSupport。使用自己的基类,如果真要脱离Spring时,只要将HibernateDaoSupport改掉不就OK了。何必那么麻烦。
我也同意这种方法, 通过组合的方式有什么好处呢? 反而会更麻烦 我 也是这么用 |
|
返回顶楼 | |