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的目錄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章