阳光网驿-企业信息化交流平台【DTC零售连锁全渠道解决方案】

 找回密码
 注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

手机号码,快捷登录

手机号码,快捷登录

老司机
查看: 969|回复: 0

[转帖] 对Hibernate Session做一个简单的包装

[复制链接]
  • TA的每日心情
    郁闷
    2012-3-7 10:18
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2012-1-7 10:21:29 | 显示全部楼层 |阅读模式
    牛人们都说dao是反模式,认为需要取消dao。  以前写个dao,需要一个DAO的基类、spring的注入、泛型,甚至要声明一个dao的接口,比拟繁琐。  大少数状况下,我认为我们需要一个复杂的实现,既不要程序员为了处理数据,声明dao的实现,做很多事情,又能比拟方便的实现对数据操作的解耦。JPA的EntityManager提供了一个很好的例子,但是假如我们用Hibernate则无法运用。于是参考JPA的 EntityManager实现,和SpringSide的SimpleHibernateDao实现,我们对Session做如下的封装,代码参见附件。  经过在Service中注入这个Wrapper,我们就拥有了复杂的数据访问才干,而不需要为每个业务声明DAO的接口,并将其注入 Service或在Service中实例化。也不必该类提供任何泛型的定义,只需给出实体类的声明即可。看一个Service的列子:  Java代码  @Autowired   protected HibernateSessionWrapper wrapper;   @Transactional(readOnly = true)   public Customer get(Long id) {   return wrapper.get(Customer.class, id);   }   public Customer logicDelete(Long id) {   Customer customer = get(id);   customer. taoyi8.info 记忆枕 setStatus(Customer.STATUS_INACTIVE);   wrapper.save(customer);   return customer;   }
    楼主热帖
    启用邀请码注册,提高发帖质量,建设交流社区
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表