2016-04-22 59 views
0

我是初學者練習休眠ORM,我需要幫助解決以下異常: 謝謝錯誤在Hibernate配置XML:失敗:org.hibernate.MappingException:錯誤閱讀資源:COM/

Entitiy:

package com.ds.supercar.model.usermodel; 

公共類地址{

private String emailid; 
private String mobile; 
private String street; 
private String city; 
private String state; 
private String country; 
private String pin; 

//GETTERS AND SETTERS 
public Address() { 
    // TODO Auto-generated constructor stub 
} 


public Address(String emailid, String mobile, String street, String city, String state, String country, 
     String pin) { 
    super(); 
    this.emailid = emailid; 
    this.mobile = mobile; 
    this.street = street; 
    this.city = city; 
    this.state = state; 
    this.country = country; 
    this.pin = pin; 
} 






public String getEmailid() { 
    return emailid; 
} 
public void setEmailid(String emailid) { 
    this.emailid = emailid; 
} 
public String getMobile() { 
    return mobile; 
} 
public void setMobile(String mobile) { 
    this.mobile = mobile; 
} 
public String getStreet() { 
    return street; 
} 
public void setStreet(String street) { 
    this.street = street; 
} 
public String getCity() { 
    return city; 
} 
public void setCity(String city) { 
    this.city = city; 
} 
public String getState() { 
    return state; 
} 
public void setState(String state) { 
    this.state = state; 
} 
public String getCountry() { 
    return country; 
} 
public void setCountry(String country) { 
    this.country = country; 
} 
public String getPin() { 
    return pin; 
} 
public void setPin(String pin) { 
    this.pin = pin; 
} 

}

hbm.xml文件中

<!DOCTYPE hibernate-mapping PUBLIC 
"-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 

<hibernate-mapping> 
    <class name="com.ds.supercar.model.usermodel.Address" table="supercaraddress" schema="supercar"> 
     <id column="email"/> 
     <property name="mobile"/> 
     <property name="street"/> 
     <property name="city"/> 
     <property name="state"/> 
     <property name="country"/> 
     <property name="pin"/> 
    </class> 

</hibernate-mapping> 

休眠CFG XML:

<!DOCTYPE hibernate-configuration PUBLIC 
"-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 

<hibernate-configuration> 
    <session-factory> 
     <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property> 
     <property name="hibernate.connection.url">jdbc:oracle:thin:@127.0.0.1:1521:SYSTEM</property> 
     <property name="hibernate.connection.username">system</property> 
     <property name="hibernate.connection.password">admin</property> 
     <property name="hbm2ddl_auto">create</property> 

org.hibernate.dialect.Oracle11gDialect 真正

例外:

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment). 

log4j:WARN請正確初始化log4j系統。 Initial SessionFactory創建失敗:org.hibernate.MappingException:讀取資源時出錯:線程「main」中的異常java.lang.ExceptionInInitializerError at Test.main (Test.java:19) 原因:org.hibernate.MappingException:讀取資源時出錯:org.hibernate.cfg.Configuration.addResource(com/ds/supercar/resources/mappings/usermodel/address.hbm.xml) Configuration.java:449) 在org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1313) 在org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1285) 在org.hibernate.cfg。 Configuration.doConfigure(Configuration.java:1267) at org.hibernate.cfg.Config uration.do在org.hibernate.cfg.Configuration.configure(Configuration.java:1148) 處測試,在org.hibernate.cfg.Configuration.configure(Configuration.java:1162) 配置(Configuration.java:1234) 。 main(Test.java:12) 引起:org.hibernate.MappingException:必須指定一個標識符類型:com.ds.supercar.model.usermodel.Address at org.hibernate.cfg.HbmBinder.bindSimpleId(HbmBinder.java :354) 在org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:293) 在org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:235) 在org.hibernate.cfg.HbmBinder.bindRoot (HbmBinder.java:151) at org.hibernate.cfg.Configuration.add(Configuration.java:360) at o rg.hibernate.cfg.Configuration.addInputStream(Configuration.java:397) 在org.hibernate.cfg.Configuration.addResource(Configuration.java:446) ... 7個

請幫我解決這個問題:

+0

這裏是剩餘的配置XML文件: <屬性名= 「hibernate.dialect」> org.hibernate.dialect.Oracle11gDialect \t \t \t <屬性名=「show_sql 「> true Naveen

+0

嗯,有兩件事:1.在hbm文件類型=「字符串」中設置數據類型,沒關係。 2.如果您有應用程序上下文,請寫入您要識別的hbm文件的引用。 –

回答

1

我想你只是在映射文件中缺少你的ID中的name

從映射XML:<id name="emailId" column="email"/>

+0

非常感謝Dean!解決了問題 – Naveen

+0

如果可以,請將答案標記爲已接受 –