javax.persistenc.Persistence类提供了两个手动创建EntityManagerFactory对象的方法,它们的定义如下所示。
package javax.persistence;
import java.util.*;
public class Persistence {
/**
* 指定持久化单元,创建EntityManagerFactory对象
* @param persistenceUnitName 持久化单元的名称
*/
public static EntityManagerFactory createEntityManagerFactory(
String persistenceUnitName) {...}
/**
*指定持久化单元和实现者的属性配置,创建EntityManagerFactory对象
*
* @param persistenceUnitName持久化单元的名称
* @param 实现者的属性配置,这些配置将覆盖persistence.xml文件中的配置
*/
public static EntityManagerFactory createEntityManagerFactory(
String persistenceUnitName, Map properties) {...}
}
其中,createEntityManagerFactory(String persistenceUnitName, Map properties)方法中properties的参数将覆盖persistence.xml文件配置的参数。
例如persistence.xml中的<property>元素中的配置如下所示。
<?xml version="1.0" encoding="UTF-8"?>
<persistence>
<persistence-unit name="jpaUnit" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>子
<property name = "hibernate.connection.driver_class" value = "com.mysql. jdbc.Dr iver"/>
<property name = "hibernate.connection.url" value = "jdbc:mysql: //localhost:3306/jp ademo"/>
<property name = "hibernate.connection.username" value = "root"/>
</properties>
<property name="hibernate.show_sql" value="true" />
</persistence-unit>
</persistence>
其中,属性 hibernate.show_sql的值为true,若创建EntityManagerFactory对象时采用以下的代码,则实际获得的 EntityManagerFactory对象属性hibernate.show_sql则为false,即为代码中所设置的将覆盖配置文件中所配置的,如下所示。
Map properties = new HashMap();
properties.put("hibernate.show_sql", "false");
EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpaUnit", properties);
分享到:
相关推荐
通过`Persistence.createEntityManagerFactory()`可以创建并返回`EntityManagerFactory`。 6. `Query`: 该接口提供了执行JPA查询的能力,包括根据实体类或JPQL(Java Persistence Query Language)编写的查询。 当...
2. **创建EntityManagerFactory**:根据持久化单元配置,通过Persistence.createEntityManagerFactory()方法创建EntityManagerFactory实例,它是持久化服务的工厂。 3. **获取EntityManager**:使用...
EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistenceUnit"); EntityManager em = emf.createEntityManager(); em.getTransaction().begin(); em.persist(user); em.getTransaction()....
JPA的核心概念包括实体(Entity)、实体管理器(EntityManager)、实体工厂(EntityManagerFactory)、查询语言(JPQL,Java Persistence Query Language)等。实体是应用程序中的业务对象,它们通过注解与数据库表...
4. **实体管理工厂**:通过`EntityManagerFactory`创建实体管理器实例,这是与数据库交互的主要接口。 5. **事务管理**:根据应用需求选择合适的事务管理策略,如JTA或编程式事务管理。 6. **执行CRUD操作**:使用`...
ejb3-persistence.jar文件是EJB3持久化模块的实现库,它包含了EJB3规范中关于持久化的API和实现,如EntityManager和EntityManagerFactory等接口,以及它们的实现类。这些类和接口提供了CRUD(创建、读取、更新、删除...
通过参考和引用传智播客的免费教程,将springmvc4.1.6与hibernate4.3.10提供的JPA...7.注意web.xml,spring.xml,spring.xml,db.properties,persistence.xml文件的配置。 写了这么多,很辛苦,若对你有帮助,请给好评。
2. 自动化持久化:通过@PersistenceContext和@PersistenceUnit注解,可以轻松地注入EntityManager和EntityManagerFactory,从而进行CRUD(创建、读取、更新和删除)操作。 3. 查询语言:JPA提供了JPQL(Java ...
EntityManagerFactory是EntityManager的工厂,负责创建EntityManager实例。它是线程安全的,通常在应用启动时创建一次,然后在整个应用程序中重用。 **JPQL(Java Persistence Query Language)** JPQL是JPA提供的...
这样,我们可以在Controller层直接进行数据操作,无需手动创建和管理EntityManager实例。 在简化`persistence.xml`配置文件的过程中,我们可以利用Spring的`LocalContainerEntityManagerFactoryBean`来替代传统的...
`dataSource()`方法创建了一个DBCP数据源,`entityManagerFactory()`方法则创建了`EntityManagerFactory`,并指定了实体扫描的包和持久化提供者。 使用DBCP作为数据源是因为其简单易用,且具有良好的性能。它支持...
在这个例子中,`Persistence.createEntityManagerFactory()`用于获取EntityManagerFactory,它是创建EntityManager的工厂。然后,通过EntityManager的`persist()`方法将Address对象持久化到数据库中。事务管理是必要...
4. **实体管理器工厂(EntityManagerFactory)**:它是创建实体管理器的工厂,通常在应用启动时创建,然后在整个应用生命周期中重复使用。 5. **持久化上下文(Persistence Context)**:实体管理器维护了一个持久...
实体管理器则负责执行CRUD(创建、读取、更新和删除)操作,而实体管理工厂则用于创建实体管理器实例。 接着,我们将探讨Hibernate的配置。这通常涉及在配置文件中指定数据库连接信息,如URL、用户名和密码,以及...
`EntityManagerFactory`是创建`EntityManager`实例的工厂,可以通过`Persistence.createEntityManagerFactory()`来获取。 2. **查询语言**:JPA 2.0引入了JPQL(Java Persistence Query Language),这是一种面向...
4. **实体管理工厂(EntityManagerFactory)**: 是创建EntityManager的工厂,负责配置JPA设置,如数据源、持久化单元等。 5. **持久化单元(Persistence Unit)**: 定义了应用程序中所有参与持久化的实体和相关配置...
import javax.persistence.EntityManagerFactory; import javax.persistence.PersistenceUnit; public class UserService { @PersistenceUnit private EntityManagerFactory entityManagerFactory; public ...
// 创建EntityManagerFactory EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistence-unit-name"); // 获取EntityManager EntityManager em = emf.createEntityManager(); // 开始事务...
应用程序通常只创建一个EntityManagerFactory实例,因为它比较昂贵,但可以创建多个EntityManager实例。 5. **事务(Transactions)**: JPA支持声明式和编程式的事务管理。@javax.persistence.TransactionAttribute...
3. 配置实体管理工厂:声明一个EntityManagerFactoryBean,该bean负责创建EntityManagerFactory,它是JPA的主要入口点。 4. 配置事务管理器:设置PlatformTransactionManager,如JpaTransactionManager,以处理事务...