JPA(四):EntityManager

Persistence

Persistence类使用于获取EntityManagerFactory实例,该类包含一个名为createEntityManagerFactory的静态方法。

        // 创建EntityManagerFactory
        String persistenceUnitName = "Jpa-helloword";
        EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory(persistenceUnitName);

Persistence提供了两个创建EntityManagerFactory的方法:

        Map<String, Object> map = new HashMap<>();
        map.put("hibernate.show_sql", false);
        EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory(persistenceUnitName, map);

该方法中可以起到修改persistence.xml的作用。

上边的代码尽管persistence.xml配置内配置项“hibernate.format_sql”属性为true,但是我们在创建EntityManagerFactory的方法中传入了参数后,会覆盖persistence.xml中的配置项的值。

EntityManagerFactory

EntityManagerFactory接口主要用来创建EnittyManager实例,该接口约定了如下4个方法:

  • createEntityManager():用于创建实体管理器对象实例。
  • createEntityManager(Map map):用于创建实体管理器对象实例的重载方法,Map参数用于提供EntityManager的属性。
  • isOpen():检查EntityManagerFactory是否处于打开状态。实体管理器工厂创建后一直处于打开状态,除非调用close()方法将其关闭。
  • close():关闭EntityFactoryFactory。EntityManagerFactory关闭后将释放所有资源,isOpen()方法测试将返回false,其它方法将不能调用,否则将导致IllegalStateException异常。

EntityManager

EntityManager#find

EntityManager#getReference

EntityManager#persistence

EntityManager#remove

EntityManager#merge

EntityManager其他方法

EntityTransaction

猜你喜欢

转载自www.cnblogs.com/yy3b2007com/p/9195903.html