使用IDEA完成maven整合SSH框架時拋出Hibernate : Mapping (RESOURCE) not found

新項目用到了hibernate,所以今天用idea有從新進行了配置和調試,這裏 用的是XML方式進行配置的,但是一直出現找不到XXX.hbm.xml not found的問題,確定檢查了配置文件都沒寫錯。各種方法調試,終於解決。

切入主題,看看今天的錯誤是如何發生的:

首先這是我的項目路徑,java 是 Sources Root , resources 是 Resources Root ,放了所需要的配置文件,其中 Hibernate 的配置,顯示的是綠色,說明沒有問題

在 eclipse 中,這樣是行得通的,運行也沒問題。但是在 IDEA 中會報這樣一個錯誤

Caused by: org.hibernate.boot.MappingNotFoundException: Mapping (RESOURCE) not found : xml/User.hbm.xml : origin(xml/User.hbm.xml)

提示是XML文件沒有找到

於是打開 IDEA 點開 target 文件夾,可以看到部署後的結構

可以看到,在此結構中,domain 文件夾下並沒有(xxx.hbm.xml)配置文件,這讓我很納悶。最後自己百度了一下,終於找到了原因:

對於MAVEN項目,Eclipse會自動把項目src\main\java\目錄下的配置文件(.xml)和資源文件(.properties)搬運到target目錄下,而intellij idea默認是不會幫我們做這件事的。

 

解決辦法:

在pom.xml文件中加入以下配置:

對應代碼如下:

複製代碼

 <!--解決Intellij構建項目時,target/classes目錄下不存在mapper.xml文件-->
        <resources>
            <resource>
                <directory>${basedir}/src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>

複製代碼

這段代碼的意思就是把src/main/java目錄下所有的xml文件都包含進去,其中${basedir} 是MAVEN的內置變量,表示項目根目錄。

同樣,想包含其他什麼文件,比如.properties文件,再加一個<include>標籤類似的寫法即可。

問題解決了嗎???如果還是不能解決,歡迎留言,大家一塊想辦法。

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