2012-04-24 50 views
1

我試圖在IntelliJ的Hibernate控制檯中運行HQL查詢。我已將數據源添加到數據源視圖,並將我的hibernate.cfg.xml添加到Hibernate構面,以便在持久性視圖中顯示。的hibernate.cfg.xml內容是:在IntelliJ Hibernate控制檯中運行查詢時MappingNotFoundException

<?xml version='1.0' encoding='utf-8'?> 
<!DOCTYPE hibernate-configuration PUBLIC 
     "-//Hibernate/Hibernate Configuration DTD//EN" 
     "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
    <session-factory> 
     <property name="connection.url">jdbc:mysql://localhost/mmanager</property> 
     <property name="connection.driver_class">com.mysql.jdbc.Driver</property> 
     <property name="connection.username">root</property> 
     <property name="connection.password">password</property> 
     <property name="dialect">com.puca.core.util.db.MySQLInnoDBDialect</property> 

     <!-- mapping files --> 
     <mapping resource="com/puca/messagemanager/api/model/XmlApiDlrMapping.hbm.xml"/> 
    </session-factory> 
</hibernate-configuration> 

.hbm.xml以綠色顯示,而如果我把它更改爲不存在的文件時顯示爲紅色,所以它似乎的IntelliJ可以找到它。但是,如果我像控制檯運行一個簡單的查詢:

java.lang.RuntimeException: org.hibernate.MappingNotFoundException: resource: com/puca/messagemanager/api/model/XmlApiDlrMapping.hbm.xml not found 
    at org.hibernate.cfg.Configuration.addResource(Configuration.java:563) 
    at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1587) 
    at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1555) 
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1534) 
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1508) 
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1462) 

我使用的IntelliJ 10.5.4:

from XmlApiDlrMapping xmlApiDlrMapping 
where xmlApiDlrMapping.retries = 5 

我得到一個錯誤。

+0

確保您沒有任何路徑錯字。 – vinodn 2012-04-24 08:49:16

+0

@vinodn我已經確認路徑是正確的 – 2012-04-24 09:14:20

+0

嘗試將xml移動到另一個位置並手動將其添加到您的類路徑中。可能xml不會被複制到classes目錄。 或..看看你的類輸出文件夾,並檢查是否存在xml。試圖弄清楚你正在使用哪個類加載器。 – vinodn 2012-04-24 09:24:12

回答

0

這正是它在錯誤信息中所說的。映射XML文件丟失:

com/puca/messagemanager/api/model/XmlApiDlrMapping.hbm.xml

這些文件是用來表列映射到實體類的字段。

http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/tutorial.html#tutorial-firstapp-mapping

+0

映射文件不會丟失。文件''的路徑顯示爲綠色,表示它是有效的,而如果我更改路徑以使其引用一個不存在的文件,它顯示爲紅色。 – 2012-04-24 08:36:15

+0

是否綠色,你檢查過該文件是否存在 - 即在文件系統上? – maksimov 2012-04-24 08:38:43

+0

是的,它在那裏 – 2012-04-24 08:54:24