91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2022-02-25 09:26:11 來源:億速云 閱讀:119 作者:小新 欄目:開發技術

這篇文章主要介紹如何解決persistence.xml配置文件修改存放路徑的問題,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

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

整合Spring、struts2和Spring Data JPA的時候遇到以下問題,現記錄以供參考。

<!-- 定義實體管理工廠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/下,若不存在該文件夾則手動創建;

2、第二種:

org.springframework.orm.jpa.LocalEntityManagerFactoryBean

改為

org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean

如果要了解實現原理,請自行查看源碼。 

持久化persistence.xml配置文件

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

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

<persistence>
  <!-- Name屬性用于定義持久化單元的名字 (name必選,空值也合法) -->
  <persistence-unit name="foshanshop">  
    <!-- Jta-data-source 用于指定持久化提供商使用的JTA數據源的全局JNDI名稱(可選) --> 
    <jta-data-source>java:/DefaultMySqlDS</jta-data-source>  
    <!-- 廠商專有屬性(可選) --> 
    <properties>    
      <!--自動輸出schema創建DDL語句 -->
      <property name="hibernate.hbm2ddl.auto" value="create-drop"/>      
    </properties>    
  </persistence-unit>  
</persistence>
  • persistence-unit:節點可以有一個或多個,每個persistence-unit 節點定義了持久化內容名稱、使用的數據源以及持久化產品的專有屬性。

  • name:屬性定義持久化名稱。

  • jta-data-source:節點指定實體Bean使用的數據源JNDI名稱,如果應用發布在jboss下,數據源名稱就必須帶有java:/前綴,數據源名稱大小寫敏感。

  • properties:節點用作指定持久化產品的各項屬性。

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

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

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

擴展(persistence-unit)

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

  • 在該持久化單元范圍(作用域)內的實體類

  • 為實體類提供持久化的持久化提供者(Persistence Provider)或庫

  • 實體類的數據源(Data Source)

  • 應用使用的事務類型(Transaction Type)

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

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

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

以上是“如何解決persistence.xml配置文件修改存放路徑的問題”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

淮北市| 班玛县| 台北市| 怀柔区| 环江| 苏尼特左旗| 丰顺县| 定襄县| 巴彦淖尔市| 克东县| 原平市| 巴塘县| 苏尼特左旗| 阿坝| 太湖县| 镇原县| 利辛县| 波密县| 霍州市| 柘荣县| 镇康县| 彩票| 陈巴尔虎旗| 江达县| 赞皇县| 旅游| 湾仔区| 英吉沙县| 靖宇县| 曲沃县| 游戏| 柯坪县| 兴仁县| 资阳市| 孝昌县| 三明市| 阿勒泰市| 攀枝花市| 普安县| 克什克腾旗| 扎鲁特旗|