JPA 泛型DAO 封装

来源:互联网 发布:为何需要元数据系统 编辑:程序博客网 时间:2024/06/05 11:53

      对于在Web容器中使用EntityManager对象,这里需要做一些改进,才能更安全。Servlet是非线程安全的,所以需要改变获得EntityManager对象的方式,这里使用ThreadLocal类。 
ThreadLocal就是为每一个使用某变量的线程都提供一个该变量值的副本,使每一个线程都可以独立地改变自己的副本,而不会和其他线程的副本冲突。从线程的角度看,就好像每一个线程都完全拥有一个该变量,这就解决了Servlet非线程安全的问题。

      以下EntityManager对象非容器EJB容器托管,手动控制事务处理。可用于JAVA SE环境。如果是EJB容器管理,或者WEB容器,可以直接注入@PersistenceContext,使用JTA、RESOURCE_LOCAL事务管理。

 

***********************************************

***********************************************

不是每个人都能制定成标准,但是每个人都有追求标准和超越标准的权利!! 

原创粉丝点击