1. 程式人生 > >maven專案中 org.hibernate.MappingNotFoundException: resource:**.hbm.xml not found問題的解決方案

maven專案中 org.hibernate.MappingNotFoundException: resource:**.hbm.xml not found問題的解決方案

maven中配置hibernate,檔案結構如下:

測試:

    public static void main(String[] args)
    {
        AccountEntity account = new AccountEntity();
        account.setName("kobe bryant");
        account.setMoney(9000.0);
//        1.載入主配置檔案
        org.hibernate.cfg.Configuration cfg = new org.hibernate.cfg.Configuration();
//        預設到類的根路徑下載入
        cfg.configure();
//        2.根據配置檔案建立SessionFactory
        SessionFactory sessionFactory = cfg.buildSessionFactory();
//        3.建立Session
        Session session = sessionFactory.openSession();
//        4.開啟事務
        Transaction transaction = session.beginTransaction();
//        5.執行操作
        session.save(account);
//        6.提交事務
        transaction.commit();
//        7.釋放資源
        session.close();
        sessionFactory.close();
    }

然後報錯: org.hibernate.MappingNotFoundException: resource:**.hbm.xml not found

原因:maven專案中,編譯時預設只會將resources中的資原始檔拷貝到target資料夾中。我的**.hbm.xml檔案是在domain中,當然找不到了。

解決方案:在pom.xml中配置資原始檔

  <build>
    <resources>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/AccountEntity.hbm.xml</include>
        </includes>
        <filtering>true</filtering>
      </resource>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/SysResourceEntity.hbm.xml</include>
        </includes>
        <filtering>true</filtering>
      </resource>
    </resources>
  </build>

解決!