..


赞助商链接

数据访问 - 创建DAO和事务管理

谈到前款的例子,我们看看如何创建DAO到实体车。

加载,保存,更新和删除:所有creaimo与一个DAO接口方法,即根据第一。






 it.mrwebmaster.hibernate.dao包;









 it.mrwebmaster.hibernate.Car进口;









 {公共接口CarDao





  



公共停车场负荷(整数ID);



	

  



节省公共车(汽车车);



	

  



更新公共车(车车);



	

  



公共无效删除(车车);







 }



在实施创建创建界面通过:





 it.mrwebmaster.hibernate.dao包;









 it.mrwebmaster.hibernate.Car进口;









 javax.persistence.EntityManager进口;







 javax.persistence.PersistenceContext进口;









 org.springframework.transaction.annotation.Transactional进口;









 @事务







 CarDaoImp​​l {公共类实现CarDao





  



 @ PersistenceContext(的unitName =“可以”)



  



私人EntityManager的EM;



	

  



 @覆盖



  



公共无效删除(车车){



    



 em.remove(字符);



  



 }





  



 @覆盖



  



 @事务(只读= TRUE)



  



公共停车场负荷(整数ID){



    



返回em.find(Car.class,ID);



  



 }





  



 @覆盖



  



节省公共车(汽车车){



    



 em.persist(字符);



    



返回车;



  



 }





  



 @覆盖



  



更新公共车(车车){



    



 em.merge回报(字符);



  



 }





  



公共无效setEm(EntityManager的EM){



    



 this.em = EM;



  



 }





  



 getEm公众的EntityManager(){



    



返回P;



  



 }







 }



在“applicationContext.xml中最后:





 < - CAR DAO - >







 <bean id="carDaoImp​​l" class="it.mrwebmaster.hibernate.dao.CarDaoImp​​l" />



可以看出,以实现我们需要的DAO NOST EntityManager的,这是直接从我们注入通过IoC的注解@ PersistenceContext“。

每种方法的实现是微不足道的,只是委托工作all'EntityManager。 至于事务管理,却偏偏要使用@ Transactional注释。 这允许Spring来创建我们的DAO实例将使用代理,其任务是打开和关闭前调用的方法和交易后,立即从方法本身做一个提交回滚 ,以防“退出错误。
请注意,最后,该交易为只读 nell'annotation @ load方法在这样做,使用已经创建了一个过渡只读。

本次交易的管理是通过AOP的使用,使这只是增加我们的applicazionContext.xml:






 < - 交易管理 - >







 <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">



  



物权name="entityManagerFactory" ref="en​​tityManagerFactory" />







 </豆>







 <tx:annotation-driven transaction-manager="transactionManager" />



春天的Java指南
电子学习
Linux操作系统(课程) Linux操作系统(课程)
完整指南开源系统。 从49€。
PHP(课程) PHP(课程)
全部课程用于创建动态Web站点。 从49€。
Ruby和Ruby on Rails的(课程) Ruby和Ruby on Rails的(课程)
创建Ruby和RoR的软件和Web应用程序。 从39€。
赞助商链接