管理持久化对象
1. 实体管理器(EntityManager)
实体管理器是Java持久化API(JPA)的核心组件,负责与实体交互。它管理实体的状态和生命周期,并在持久化上下文中查询实体。实体管理器可以创建和删除持久化实体实例,并通过主键查找实体。此外,它还可以使用乐观或悲观锁定机制来保护实体免受并发访问,并使用JPQL查询根据特定条件检索实体。
应用程序管理与容器管理
根据环境的不同,获取实体管理器的方式也有所不同。在容器管理的环境中,如EJBs或Servlet容器,事务由容器管理,因此不需要显式编写提交或回滚。开发者只需通过 @PersistenceContext
注解或JNDI查找来获取实体管理器。而在应用程序管理的环境中,开发者需要负责创建和关闭实体管理器,管理其生命周期。
示例代码:应用程序管理的实体管理器
public class Main {
public static void main(String[] args) {
// 创建一个Book实例
Book book = new Book("H2G2", "The Hitchhiker's Guide to the Galaxy", 12.5F, "1-84023-742-2", 354, false);
// 获取实体管理器和事务
EntityManagerFactory emf = Persistence.createEntityManagerFactory("chapter06PU");