JPA persistence.xml 文件

JPA配置文件

 

Xml代码   收藏代码
  1. <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.              xsi:schemaLocation="http://java.sun.com/xml/ns/persistence persistence_1_0.xsd" version="1.0">  
  3.     <persistence-unit name="eclipselink" transaction-type="RESOURCE_LOCAL">  
  4.         <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>  
  5.         <class>org.compass.gps.device.jpa.model.Simple</class>  
  6.         <class>org.compass.gps.device.jpa.model.SimpleBase</class>  
  7.         <class>org.compass.gps.device.jpa.model.SimpleExtend</class>  
  8.         <exclude-unlisted-classes>false</exclude-unlisted-classes>  
  9.         <properties>  
  10.             <property name="eclipselink.jdbc.driver" value="org.hsqldb.jdbcDriver"/>  
  11.             <property name="eclipselink.jdbc.url" value="jdbc:hsqldb:mem:test"/>  
  12.             <property name="eclipselink.jdbc.user" value="sa"/>  
  13.             <property name="eclipselink.jdbc.password" value=""/>  
  14.             <property name="eclipselink.target-database"  
  15.                       value="org.eclipse.persistence.platform.database.HSQLPlatform"/>  
  16.             <property name="eclipselink.logging.level" value="OFF"/>  
  17.             <property name="eclipselink.orm.throw.exceptions" value="true"/>  
  18.   
  19.             <property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>  
  20.             <property name="eclipselink.ddl-generation.output-mode" value="database"/>  
  21.   
  22.         </properties>  
  23.     </persistence-unit>  
  24.     <persistence-unit name="embeddedeclipselink" transaction-type="RESOURCE_LOCAL">  
  25.         <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>  
  26.         <class>org.compass.gps.device.jpa.model.Simple</class>  
  27.         <class>org.compass.gps.device.jpa.model.SimpleBase</class>  
  28.         <class>org.compass.gps.device.jpa.model.SimpleExtend</class>  
  29.         <exclude-unlisted-classes>false</exclude-unlisted-classes>  
  30.         <properties>  
  31.             <property name="eclipselink.jdbc.driver" value="org.hsqldb.jdbcDriver"/>  
  32.             <property name="eclipselink.jdbc.url" value="jdbc:hsqldb:mem:test"/>  
  33.             <property name="eclipselink.jdbc.user" value="sa"/>  
  34.             <property name="eclipselink.jdbc.password" value=""/>  
  35.             <property name="eclipselink.target-database"  
  36.                       value="org.eclipse.persistence.platform.database.HSQLPlatform"/>  
  37.             <property name="eclipselink.logging.level" value="OFF"/>  
  38.             <property name="eclipselink.orm.throw.exceptions" value="true"/>  
  39.   
  40.             <property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>  
  41.             <property name="eclipselink.ddl-generation.output-mode" value="database"/>  
  42.   
  43.             <property name="eclipselink.session.customizer"  
  44.                       value="org.compass.gps.device.jpa.embedded.eclipselink.CompassSessionCustomizer"/>  
  45.   
  46.             <property name="compass.engine.connection" value="target/test-index"/>  
  47.             <property name="compass.debug" value="true" />  
  48.         </properties>  
  49.     </persistence-unit>  
  50.     <persistence-unit name="toplink" transaction-type="RESOURCE_LOCAL">  
  51.         <provider>oracle.toplink.essentials.PersistenceProvider</provider>  
  52.         <class>org.compass.gps.device.jpa.model.Simple</class>  
  53.         <class>org.compass.gps.device.jpa.model.SimpleBase</class>  
  54.         <class>org.compass.gps.device.jpa.model.SimpleExtend</class>  
  55.         <exclude-unlisted-classes>false</exclude-unlisted-classes>  
  56.         <properties>  
  57.             <property name="toplink.jdbc.driver" value="org.hsqldb.jdbcDriver"/>  
  58.             <property name="toplink.jdbc.url" value="jdbc:hsqldb:mem:test"/>  
  59.             <property name="toplink.jdbc.user" value="sa"/>  
  60.             <property name="toplink.jdbc.password" value=""/>  
  61.             <property name="toplink.target-database" value="oracle.toplink.essentials.platform.database.HSQLPlatform"/>  
  62.             <property name="toplink.logging.level" value="OFF"/>  
  63.             <property name="toplink.orm.throw.exceptions" value="true"/>  
  64.   
  65.             <property name="toplink.ddl-generation" value="drop-and-create-tables"/>  
  66.             <property name="toplink.ddl-generation.output-mode" value="database"/>  
  67.   
  68.         </properties>  
  69.     </persistence-unit>  
  70.     <persistence-unit name="embeddedtoplink" transaction-type="RESOURCE_LOCAL">  
  71.         <provider>oracle.toplink.essentials.PersistenceProvider</provider>  
  72.         <class>org.compass.gps.device.jpa.model.Simple</class>  
  73.         <class>org.compass.gps.device.jpa.model.SimpleBase</class>  
  74.         <class>org.compass.gps.device.jpa.model.SimpleExtend</class>  
  75.         <exclude-unlisted-classes>false</exclude-unlisted-classes>  
  76.         <properties>  
  77.             <property name="toplink.jdbc.driver" value="org.hsqldb.jdbcDriver"/>  
  78.             <property name="toplink.jdbc.url" value="jdbc:hsqldb:mem:test"/>  
  79.             <property name="toplink.jdbc.user" value="sa"/>  
  80.             <property name="toplink.jdbc.password" value=""/>  
  81.             <property name="toplink.target-database" value="oracle.toplink.essentials.platform.database.HSQLPlatform"/>  
  82.             <property name="toplink.logging.level" value="OFF"/>  
  83.             <property name="toplink.orm.throw.exceptions" value="true"/>  
  84.   
  85.             <property name="toplink.ddl-generation" value="drop-and-create-tables"/>  
  86.             <property name="toplink.ddl-generation.output-mode" value="database"/>  
  87.   
  88.             <property name="toplink.session.customizer"  
  89.                       value="org.compass.gps.device.jpa.embedded.toplink.CompassSessionCustomizer"/>  
  90.   
  91.             <property name="compass.engine.connection" value="target/test-index"/>  
  92.             <property name="compass.debug" value="true" />  
  93.         </properties>  
  94.     </persistence-unit>  
  95.     <persistence-unit name="hibernate" transaction-type="RESOURCE_LOCAL">  
  96.         <provider>org.hibernate.ejb.HibernatePersistence</provider>  
  97.         <class>org.compass.gps.device.jpa.model.Simple</class>  
  98.         <class>org.compass.gps.device.jpa.model.SimpleBase</class>  
  99.         <class>org.compass.gps.device.jpa.model.SimpleExtend</class>  
  100.         <exclude-unlisted-classes>false</exclude-unlisted-classes>  
  101.         <properties>  
  102.             <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>  
  103.             <property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver"/>  
  104.             <property name="hibernate.connection.url" value="jdbc:hsqldb:mem:test"/>  
  105.             <property name="hibernate.connection.username" value="sa"/>  
  106.             <property name="hibernate.connection.password" value=""/>  
  107.             <property name="hibernate.search.autoregister_listeners" value="false"/>  
  108.   
  109.             <property name="hibernate.hbm2ddl.auto" value="create"/>  
  110.         </properties>  
  111.     </persistence-unit>  
  112.     <persistence-unit name="embeddedhibernate" transaction-type="RESOURCE_LOCAL">  
  113.         <provider>org.hibernate.ejb.HibernatePersistence</provider>  
  114.         <class>org.compass.gps.device.jpa.model.Simple</class>  
  115.         <class>org.compass.gps.device.jpa.model.SimpleBase</class>  
  116.         <class>org.compass.gps.device.jpa.model.SimpleExtend</class>  
  117.         <exclude-unlisted-classes>false</exclude-unlisted-classes>  
  118.         <properties>  
  119.             <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>  
  120.             <property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver"/>  
  121.             <property name="hibernate.connection.url" value="jdbc:hsqldb:mem:test"/>  
  122.             <property name="hibernate.connection.username" value="sa"/>  
  123.             <property name="hibernate.connection.password" value=""/>  
  124.             <property name="hibernate.search.autoregister_listeners" value="true"/>  
  125.   
  126.             <property name="hibernate.hbm2ddl.auto" value="create"/>  
  127.   
  128.             <property name="compass.engine.connection" value="target/test-index"/>  
  129.             <property name="compass.debug" value="true" />  
  130.         </properties>  
  131.     </persistence-unit>  
  132.     <persistence-unit name="openjpa" transaction-type="RESOURCE_LOCAL">  
  133.         <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>  
  134.         <class>org.compass.gps.device.jpa.model.Simple</class>  
  135.         <class>org.compass.gps.device.jpa.model.SimpleBase</class>  
  136.         <class>org.compass.gps.device.jpa.model.SimpleExtend</class>  
  137.         <exclude-unlisted-classes>false</exclude-unlisted-classes>  
  138.         <properties>  
  139.             <property name="openjpa.jdbc.DBDictionary" value="hsql"/>  
  140.             <property name="openjpa.ConnectionDriverName" value="org.hsqldb.jdbcDriver"/>  
  141.             <property name="openjpa.ConnectionURL" value="jdbc:hsqldb:mem:test"/>  
  142.             <property name="openjpa.ConnectionUserName" value="sa"/>  
  143.             <property name="openjpa.ConnectionPassword" value=""/>  
  144.   
  145.             <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema"/>  
  146.         </properties>  
  147.     </persistence-unit>  
  148.   
  149.     <persistence-unit name="embeddedopenjpa" transaction-type="RESOURCE_LOCAL">  
  150.         <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>  
  151.         <class>org.compass.gps.device.jpa.model.Simple</class>  
  152.         <class>org.compass.gps.device.jpa.model.SimpleBase</class>  
  153.         <class>org.compass.gps.device.jpa.model.SimpleExtend</class>  
  154.         <exclude-unlisted-classes>true</exclude-unlisted-classes>  
  155.         <properties>  
  156.             <property name="openjpa.jdbc.DBDictionary" value="hsql"/>  
  157.             <property name="openjpa.ConnectionDriverName" value="org.hsqldb.jdbcDriver"/>  
  158.             <property name="openjpa.ConnectionURL" value="jdbc:hsqldb:mem:test"/>  
  159.             <property name="openjpa.ConnectionUserName" value="sa"/>  
  160.             <property name="openjpa.ConnectionPassword" value=""/>  
  161.   
  162.             <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema"/>  
  163.   
  164.             <property name="compass.engine.connection" value="target/test-index"/>  
  165.             <property name="compass.debug" value="true" />  
  166.         </properties>  
  167.     </persistence-unit>  
  168. </persistence>  

 

 

 

 

 

附上一篇不错的文章

 

来源:http://www.cnblogs.com/luxh/archive/2012/05/24/2516282.html

 

 

 

persistence.xml文件必须定义在classpath路径下的META-INF文件夹中。

 

 

我们看看基于Hibernate提供的一个比较完整的JPA2.0的persistence.xml文件。

  persistence.xml: 

 

 

Xml代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2.   <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"   
  3.               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  4.               xsi:schemaLocation="http://java.sun.com/xml/ns/persistence   
  5.               http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">  
  6.        
  7.      <!--必须要有name属性,不能为空 -->  
  8.       <persistence-unit name="jpaPU" transaction-type="RESOURCE_LOCAL">  
  9.            <!--可选 -->  
  10.            <provider>org.hibernate.ejb.HibernatePersistence</provider>  
  11.            <!--可选 -->  
  12.            <jta-data-source>java:/DefaultDS</jta-data-source>  
  13.            <!--可选 -->  
  14.            <mapping-file>ormap.xml</mapping-file>  
  15.            <!--可选 -->  
  16.            <jar-file>MyApp.jar</jar-file>  
  17.            <!--可选 -->  
  18.            <class>org.acme.Employee</class>  
  19.            <!--可选 -->  
  20.            <shared-cache-mode>ENABLE_SELECTOVE</shared-cache-mode>  
  21.            <!--可选 -->  
  22.            <validation-mode>CALLBACK</validation-mode>  
  23.              
  24.            <!--厂商的特定属性 -->  
  25.            <properties>  
  26.               <!--配置Hibernate方言 -->  
  27.               <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />  
  28.               <!--配置数据库驱动 -->  
  29.               <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />  
  30.               <!--配置数据库用户名 -->  
  31.               <property name="hibernate.connection.username" value="root" />  
  32.               <!--配置数据库密码 -->  
  33.               <property name="hibernate.connection.password" value="root" />  
  34.               <!--配置数据库url -->  
  35.               <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/jpa?useUnicode=true&amp;characterEncoding=UTF-8" />  
  36.               <!--设置外连接抓取树的最大深度 -->  
  37.               <property name="hibernate.max_fetch_depth" value="3" />  
  38.               <!--自动输出schema创建DDL语句 -->  
  39.               <property name="hibernate.hbm2ddl.auto" value="update" />      
  40.            </properties>  
  41.       </persistence-unit>  
  42.                 
  43.   </persistence>  

 

 

 

  xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"

  要注意使用的是2.0规范

  name  

  JPA2.0规范要求每一个持久化单元必须有一个名字,不能为空。即persistence-unit name="manager1"的name不能为空。

  transaction-type

  使用的事务类型。有JTA和RESOURCE_LOCAL两种类型可以选择。在JavaEE环境中默认为JTA,在JavaSE环境中默认为RESOURCE_LOCAL。当在persistent.xml文件使用<jta-data-source>,默认就是JTA事务,使用<non-jta-data-source>,默认就是使用RESOURCE_LOCAL事务。这两种事务的区别不在这里讨论。                

  

    provider

  EJB Persistence provider的一个实现类。如果不是使用多个厂商的 EJB Persistence实现,是不需要定义的。

  mapping-file

  指定映射文件的位置

  

     jar-file

  指定要解析的jar。jar中所有注解的类、包和所有的hbm.xml都会被添加到persistent-unit的配置中。主要用在JavaEE环境中。

  

     exclude-unlisted-classes

  不检查jar中加了@Entity注解的类。

  

     class

  明确指定要映射的类

  

     shared-cache-mode

  缓存模式。加了@Cacheable注解的默认为二级缓存。有四种模式:ALL-缓存所有实体;NONE-禁止缓存;ENABLE_SELECTIVE-如果加了缓存的标识,是默认的选选        项;DISABLE_SELECTIVE- enable caching unless explicitly marked as  @Cacheable(false) (not  recommended)

  

     validation-mode

  实体的验证模式,默认是激活的。当一个实体在创建、更新,在实体发送到数据库前会被进行验证。CALLBACK: entities are validated on creation, update and deletion. If no Bean Validation provider  is present, an exception is raised at initialization time.

  

     properties

  配置厂商的一些特定属性。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值