hibernate比较全面的配制说明

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接口,并且有无参的构造方法。

示例如下:

&

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值