Hibernate JPA自定义配置可以通过多种方式进行配置,如下面列举的几种方法。
方法一:在persistence.xml文件中配置,如下所示。
<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.Driver" />
<property name="hibernate.connection.url"
value="jdbc:mysql://localhost:3306/jpademo" />
<property name="hibernate.connection.username" value="root" />
<property name=" hibernate.show_sql " value="true"/>
</properties>
</persistence-unit>
</persistence>
其中,“hibernate.show_sql ”为可配置的属性,Hibernate JPA还提供很多不同属性的配置。
— 方法二:通过代码,在创建EntityManagerFactory时指定,如下所示。
Map configOverrides = new HashMap();
configOverrides.put("hibernate.format_sql ", true);
EntityManagerFactory programmaticEmf =
Persistence.createEntityManagerFactory("jpaUnit", configOverrides);
当同时使用方法一和方法二设置时,方法二的方式为有效的配置。
— 方法三:使用Hibernate 专有的配置文件来配置,但首先要在persistence.xml文件中配置“hibernate.ejb.cfgfile”指定配置文件的位置,如下所示。
<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.Driver" />
<property name="hibernate.connection.url"
value="jdbc:mysql://localhost:3306/jpademo" />
<property name="hibernate.connection.username" value="root" />
<!—可选,配置Hibernate配置文件-->
< property name="hibernate.ejb.cfgfile"
value="/com/fengmanfei/jpa/hibernate.cfg.xml"/ >
</properties>
</persistence-unit>
</persistence>
其中,“/com /fengmanfei/jpa/hibernate.cfg.xml”为Hibernate配置文件的保存位置。使用这种方式,适用于将现有 Hibernate应用移植到JPA应用中来。但要注意,方法三的优先级最低,如果与方法一和方法二冲突,则方法一或方法二中的配置有效。
14.1.4 基本配置
方法一和方法二是JPA的标准配置,方法三是Hibernate特有的配置。并不是所有的属性都可以通过这三种方式配置,其中一些属性必须通过方法一和方法二来配置,这些属性的详细说明如下所示。
— 属性名:hibernate.ejb.classcache.<classname>
描述:指定缓存实体对象,<classname>为缓存类的全名,值为缓存类型,以逗号分隔。
示例如下:
<property name="hibernate.ejb.classcache. com.fengmanfei.jpa.entity.Customer"
value="read-write"/>
— 属性名:hibernate.ejb.collectioncache.<collectionrole>
描述:指定集合实体类缓存,设置同上。<collectionrole>为集合类的全名,值为缓存类型,以逗号分隔。
示例如下:
<property name="hibernate.ejb.collectioncache.com.fengmanfei.jpa.entity.Customer. orders"
value="read-write , RegionName "/>
★ 提示 ★
读者若想了解更多的缓存设置,请参阅JBoss Cache的相关文档。
— 属性名:hibernate.ejb.cfgfile
描述:指定使用Hibernate配置文件中的配置。
示例如下:
< property name="hibernate.ejb.cfgfile" value="/com/fengmanfei/jpa/hibernate.cfg.xml"/ >
— 属性名:hibernate.archieve.autodetection
描述:创建Entity Manager时搜索文件的类型,多个值之间用逗号分隔。
可选值:
— class:.class类文件。
— hbm:Hibernate 配置文件。
默认两个都搜索。
示例如下:
<property name="hibernate.archive.autodetection" value="class,hbm"/>
— 属性名:hibernate.ejb.interceptor
描述:自定义拦截器类名,拦截器必须实现了org.hibernate.Interceptor接口,并且有无参的构造方法。
示例如下:
&
hibernate比较全面的配制说明
最新推荐文章于 2022-04-08 07:59:52 发布