亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解決persistence.xml配置文件修改存放路徑的問題

 更新時間:2022年02月24日 17:08:55   作者:時光的詩  
這篇文章主要介紹了解決persistence.xml配置文件修改存放路徑的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

persistence.xml配置文件修改存放路徑

今天整合Spring、struts2和Spring Data JPA的時候遇到以下問題,現(xiàn)記錄以供參考。

<!-- 定義實體管理工廠bean -->
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
<property name="persistenceUnitName" value="demo" />
<property name="persistenceXmlLocation" value="classpath:persistence.xml" />
</bean>

按以上代碼配置實體管理工廠時將會拋出異常,大意就是找不到persistence.xml文件。

因為我的persistence.xml文件是放在與src同級的resource文件夾內的,而默認會去src下META-INF文件夾加載該配置文件。

解決辦法有兩種

1、第一種:

將persistence.xml文件移至src/META-INF/下,若不存在該文件夾則手動創(chuàng)建;

2、第二種:

org.springframework.orm.jpa.LocalEntityManagerFactoryBean

改為

org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean

如果要了解實現(xiàn)原理,請自行查看源碼。 

持久化persistence.xml配置文件

在EJB中,一個實體Bean應用由實體類和persistence.xml文件文件組成。persistence.xml文件在jar文件的META-INF目錄下。persistence.xml文件指定實體Bean使用的數(shù)據(jù)源及Entity Manager對象的默認行為。

我們來看一個最簡單的persistence.xml文件,了解一下它的配置。

<persistence>
? <!-- Name屬性用于定義持久化單元的名字 (name必選,空值也合法) -->
? <persistence-unit name="foshanshop">??
? ? <!-- Jta-data-source 用于指定持久化提供商使用的JTA數(shù)據(jù)源的全局JNDI名稱(可選) -->?
? ? <jta-data-source>java:/DefaultMySqlDS</jta-data-source>??
? ? <!-- 廠商專有屬性(可選) -->?
? ? <properties>? ??
? ? ? <!--自動輸出schema創(chuàng)建DDL語句 -->
? ? ? <property name="hibernate.hbm2ddl.auto" value="create-drop"/>? ? ??
? ? </properties>? ??
? </persistence-unit>??
</persistence>
  • persistence-unit:節(jié)點可以有一個或多個,每個persistence-unit 節(jié)點定義了持久化內容名稱、使用的數(shù)據(jù)源以及持久化產品的專有屬性。
  • name:屬性定義持久化名稱。
  • jta-data-source:節(jié)點指定實體Bean使用的數(shù)據(jù)源JNDI名稱,如果應用發(fā)布在jboss下,數(shù)據(jù)源名稱就必須帶有java:/前綴,數(shù)據(jù)源名稱大小寫敏感。
  • properties:節(jié)點用作指定持久化產品的各項屬性。

對于properties 節(jié)點需要說明的是,各個應用服務器使用的持久化產品都不一樣,如jboss使用的是hibernate,weblogic10使用的是kodo。因為jboss采用了hibernate,hibernate有一項屬性"hibernate.hbm2ddl.auto",該屬性指定實體Bean發(fā)布時是否同步數(shù)據(jù)庫結構,如果"hibernate.hbm2ddl.auto"的值設為“create-drop”,在實體發(fā)布及卸載時將自動創(chuàng)建及刪除相應數(shù)據(jù)庫表。

jboss服務器啟動或關閉時也會引發(fā)實體Bean的發(fā)布及卸載。

ps:如果你的表已經存在,并且想保留數(shù)據(jù),發(fā)布實體 bean 時可以把 hibernate.hbm2ddl.auto 的值設為 none 或update,以后為了實體 bean 的改動能反應到數(shù)據(jù)表,建議使用 update,這樣實體 Bean 添加一個屬性時能同時在數(shù)據(jù)表增加相應字段。

擴展(persistence-unit)

持久化單元包含的屬性有:

  • 在該持久化單元范圍(作用域)內的實體類
  • 為實體類提供持久化的持久化提供者(Persistence Provider)或庫
  • 實體類的數(shù)據(jù)源(Data Source)
  • 應用使用的事務類型(Transaction Type)

持久化單元能夠被打包成WAR文件,EJB-JAR文件,EAR文件的一部分,或者直接打包成應用程序能夠直接使用的JAR文件。

持久化單元的范圍(作用域)取決于persistence.xml文件的位置。一般說來,IDE能夠使用引導界面來正確放置persistence.xml的位置。例如使用IDE為EJB模塊(Module)創(chuàng)建的持久性單元,persistence.xml文件將被放在EJB模塊的src/conf目錄中,當你將模塊打包時,persistence.xml文件被放在EJB JAR文件的META-INF目錄中。這樣持久化單元的作用域就是EJB JAR文件中的類。

ps:persistence.xml文件的位置決定持久化的根(Persistence Root)。持久化的根為JAR文件或者包含META-INF目錄(前提是persistence.xml位于此)的目錄。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java SE求解漢諾塔問題的示例代碼

    Java SE求解漢諾塔問題的示例代碼

    漢諾塔問題是一個經典的問題。漢諾塔(Hanoi Tower),又稱河內塔,源于印度一個古老傳說。本文將用Java SE求解這一問題,感興趣的可以學習一下
    2022-03-03
  • Java消息摘要算法MAC實現(xiàn)與應用完整示例

    Java消息摘要算法MAC實現(xiàn)與應用完整示例

    這篇文章主要介紹了Java消息摘要算法MAC實現(xiàn)與應用,結合完整實例形式分析了java消息摘要算法MAC的概念、原理、實現(xiàn)方法及相關操作注意事項,需要的朋友可以參考下
    2019-09-09
  • SpringBoot2.x 整合 AntiSamy防御XSS攻擊的簡單總結

    SpringBoot2.x 整合 AntiSamy防御XSS攻擊的簡單總結

    本文主要對SpringBoot2.x集成AntiSamy防御XSS攻擊進行簡單總結,其中SpringBoot使用的2.4.5版本,通過示例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2021-08-08
  • java以json格式向后臺服務器接口發(fā)送請求的實例

    java以json格式向后臺服務器接口發(fā)送請求的實例

    下面小編就為大家分享一篇java以json格式向后臺服務器接口發(fā)送請求的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • java實現(xiàn)mongodb的數(shù)據(jù)庫連接池

    java實現(xiàn)mongodb的數(shù)據(jù)庫連接池

    這篇文章主要介紹了基于java實現(xiàn)mongodb的數(shù)據(jù)庫連接池,Java通過使用mongo-2.7.3.jar包實現(xiàn)mongodb連接池,感興趣的小伙伴們可以參考一下
    2015-12-12
  • IDEA java出現(xiàn)無效的源發(fā)行版14解決方案

    IDEA java出現(xiàn)無效的源發(fā)行版14解決方案

    這篇文章主要介紹了IDEA java出現(xiàn)無效的源發(fā)行版14解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • java如何實現(xiàn)自動生成數(shù)據(jù)庫設計文檔

    java如何實現(xiàn)自動生成數(shù)據(jù)庫設計文檔

    以前我們還需要手寫數(shù)據(jù)庫設計文檔、現(xiàn)在可以通過引入screw核心包來實現(xiàn)Java?數(shù)據(jù)庫文檔一鍵生成。本文將具體介紹一下如何通過java自動生成數(shù)據(jù)庫設計文檔,需要的朋友可以參考下
    2021-11-11
  • 使用spring容器在初始化Bean時前和后的操作

    使用spring容器在初始化Bean時前和后的操作

    這篇文章主要介紹了使用spring容器在初始化Bean時前和后的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java使用Tesseract-Ocr識別數(shù)字

    Java使用Tesseract-Ocr識別數(shù)字

    這篇文章主要介紹了Java使用Tesseract-Ocr識別數(shù)字的方法,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下
    2021-04-04
  • Java實現(xiàn)的Windows資源管理器實例

    Java實現(xiàn)的Windows資源管理器實例

    這篇文章主要介紹了Java實現(xiàn)的Windows資源管理器,實例分析了基于java實現(xiàn)windows資源管理器的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07

最新評論