Hii
I am getting this error when ever i a m trying to run my code,for the collection mapping using hibernate,pls tell me where should i change my code...
org.hibernate.MappingException: Error reading resource: com/jlc/hibernate/customer.hbm.xml
at org.hibernate.cfg.Configuration.addResource(Configuration.java:452)
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1263)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1235)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1217)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1184)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1112)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1098)
at com.jlc.hibernate.Client.main(Client.java:13)
Caused by: org.hibernate.MappingException: invalid mapping
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:399)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:449)
... 7 more
Caused by: org.xml.sax.SAXParseException: Element type "List" must be declared.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.handleStartElement(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.dom4j.io.SAXReader.read(SAXReader.java:465)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:398)
... 8 more
customer.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping package="com.jlc.hibernate">
<class name="Customer" table="customer_table">
<id name="cid" column="cid" type="int">
<generator class="increment">
</generator>
</id>
<property name="cname" type="string"></property>
<List name="emails" table="emails_table">
<key column="cid"/>
<list-index column="index"></list-index>
<element column="emailId" type="string"/>
</List>
<set name="phones" table="phones_table">
<key column="cid"></key>
<element column="phoneno" type="string"/>
</set>
<map name="refs" table="refs_table">
<key column="cid"/>
<index column="rname" type="string"/>
<element column="rphone" type="string"/>
</map>
</class>
</hibernate-mapping>
client.java
package com.jlc.hibernate;
import org.hibernate.*;
import org.hibernate.cfg.*;
import java.util.*;
class Client
{
public static void main(String as[])
{
try{
Configuration cfg=new Configuration();
cfg=cfg.configure();
SessionFactory sf=cfg.buildSessionFactory();
Session s=sf.openSession();
Transaction tx=s.beginTransaction();
System.out.println("hiii sufiii");
//List ems=new ArrayList();
List<String> ems=new ArrayList<String>();
ems.add("
[email protected]");
ems.add("
[email protected]");
Set<String> phs=new HashSet<String>();
phs.add("2211");
phs.add("3322");
Map<String, String> refs=new HashMap<String, String>();
refs.put("r1", "11");
refs.put("r2", "22");
Customer c=new Customer();
s.save(c);
Customer cust=(Customer)s.load(Customer.class,"c");
System.out.println(cust.getCname());
System.out.println(cust.getEmails());
System.out.println(cust.getPhones());
System.out.println(cust.getRefs());
tx.commit();
}catch(Exception e)
{
e.printStackTrace();
}
}
}