JPA持久化persistence.xml配置文件及参数详解

JPA持久化persistence.xml配置文件及参数详解

   JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。

JPA包括以下三个方面的技术:

1、 ORM映射元数据

JPA支持XML和JDK注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此景实体对象持久化到数据库表中

2、API

用来操作实体对象,执行CRUD操作,框架在后台代替我们完成所有的事情,开发者能够从繁琐的JDBC和SQL代码中解放出来

3、查询语言

通过面向对象数据库的查询语言查询数据,避免程序的SQL语句的高度耦合

持久化单元的具有的属性:

1、该持久性单元内的实体类

2、为上述实体类提供持久性支持的提供者或库

JPA实现,能够为应用提供持久性对象的库。

3、上述实体类的数据源

是指提供实体类存储的数据库。数据源必须在服务器中注册并且使用JNDI名称指定。如果事务是由容器管理的JTA事务, 那么数据源就必须是JTA数据源,如果事务是由应用负责管理,那么数据源就必须是JDBC连接指定。

4、应用使用的事务类型

<persistence>
    version = "2.1"
    xmlns = "http://xmlns.jcp.org/xml/ns/persistence"
    xmlns = "http://www.w3.org/2001/XMLSchema-instance"
    xsi:shemaLocation = "http://xmlns.jcp.org/xml/ns/persistence
                         http://xmlns.jcp.org/xml/ns/persistence_2_1.xsd"
    <!--配置持久化单元-->
    <persistence_unit name = "HelloWorldPU">
        <!--数据库连接 Jta-data-source和 non-jta-data-source用于分别指定持久化提供商使用的JTA和/或non-JTA数据源的全局JNDI名称(可选)-->
        <jta-data-source>myDS</jta-data-source>
        <!-- 声明orm.xml所在位置.即指定映射文件 (可选) -->  
        <mapping-file>product.xml</mapping-file>  

        <!-- 以包含persistence.xml的jar文件为基准的相对路径,添加额外的jar文件.指定托管类的附加JAR(可选) -->  
        <jar-file>../lib/model.jar</jar-file>

        <!--持久化类-->
        <class>com.lzb.mitan</class>

        <!--为映射的类禁用扫描-->
        <exclude-unlisted-classes>true</exclude-unlisted-classes>

        <!--设置属性-->
        <properties>
            <!--自动输出schema创建DDL语句 value的值可以是 create-drop / create / update  
值得注意的是create-drop他会在SESSION关闭后删除所有表开启式再创建。 -->
            <property name="hibernate.hbm2ddl.auto" value="update" />  
            <property name="hibernate.show_sql" value="true" /> 

            <!--删除/重建SQL架构-->
            <property 
                name = "javax.persistence.schema-generation.database.action"
                value = "drop-and-create"/>
            <!--格式化SQL-->       
            <property 
                name = "hibernate.format_sql" value = "true"/>

            <property
                name = "hibernate.use_sql_comments" value = "true"/>

        </properties>
    </persistence_unit>
</persistence>
     持久化单元能够被打包成war文件,作用域取决于persistence.xml的位置。

注意:persistence.xml文件的位置决定持久性的根——jar文件或者是包含META-INF的目录

猜你喜欢

转载自blog.csdn.net/qq_33349750/article/details/75078689