2010-12-14 4 views
0

Je suis en train de faire beaucoup à de nombreux exemples avec mise en veille prolongée en utilisant la liste java. Mes codes sont les suivants, je reçois quelques erreurs. Si quelqu'un peut me aider à résoudre ce problème, il serait grandMise en veille prolongée plusieurs à plusieurs Bidirectionnelle Mapping avec l'aide de Java Liste

Un étudiant peut prendre plusieurs cours Un cours peut être suivi par de nombreux étudiants

     Student ---->STUDENT_COURSE<-----Course 

Classe Student:

public class Student implements java.io.Serializable 
{ 
    private long studentId; 
    private String studentName; 
    private List<Course> courses = new LinkedList<Course>(); 
     //other getters and setters 

} 

Cours Classe:

public class Course implements java.io.Serializable { 

    private long courseId; 
    private String courseName; 
    private List <Student> Stu = new LinkedList <Student>(); 
     //other getters and setters 
} 

Fichier de correspondance de cours:

<?xml version="1.0"?> 
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
<!-- Generated Dec 14, 2010 7:14:32 AM by Hibernate Tools 3.4.0.Beta1 --> 
<hibernate-mapping> 
    <class name="com.BiddingSystem.domain.Course" table="COURSE"> 
     <id name="courseId" type="long"> 
      <column name="COURSEID" /> 
      <generator class="native" /> 
     </id> 
     <property name="courseName" type="java.lang.String"> 
      <column name="COURSENAME" /> 
     </property> 
     <list name="Stu" table="STUDENT_COURSE"> 
      <key> 
       <column name="COURSEID" /> 
      </key> 
      <many-to-many column="STUDENTID" class="com.BiddingSystem.domain.Student" /> 
     </list> 
    </class> 
</hibernate-mapping> 

Cartographie des étudiants Fichier:

<?xml version="1.0"?> 
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
<!-- Generated Dec 14, 2010 7:14:32 AM by Hibernate Tools 3.4.0.Beta1 --> 
<hibernate-mapping> 
    <class name="com.BiddingSystem.domain.Student" table="STUDENT"> 
     <id name="studentId" type="long"> 
      <column name="STUDENTID" /> 
      <generator class="native" /> 
     </id> 
     <property name="studentName" type="java.lang.String"> 
      <column name="STUDENTNAME" /> 
     </property> 
     <list name="courses" table="STUDENT_COURSE"> 
      <key> 
       <column name="STUDENTID" /> 
      </key> 
      <many-to-many column="COURSEID" class="com.BiddingSystem.domain.Course" /> 
     </list> 
    </class> 
</hibernate-mapping> 

Erreur:

Initial SessionFactory creation failed.org.hibernate.InvalidMappingException: Could not parse mapping document from resource com/BiddingSystem/domain/Student.hbm.xml 
[WARN] /biddingsystem/greet 
java.lang.ExceptionInInitializerError 
    at com.BiddingSystem.server.HibernateUtil.<clinit>(HibernateUtil.java:16) 
    at com.BiddingSystem.server.GreetingServiceImpl.<init>(GreetingServiceImpl.java:33) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
    at java.lang.Class.newInstance0(Class.java:355) 
    at java.lang.Class.newInstance(Class.java:308) 
    at org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153) 
    at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:463) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:324) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) 
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) 
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488) 
Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from resource com/BiddingSystem/domain/Student.hbm.xml 
    at org.hibernate.cfg.Configuration.addResource(Configuration.java:671) 
    at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1679) 
    at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1647) 
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1626) 
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1600) 
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1520) 
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1506) 
    at com.BiddingSystem.server.HibernateUtil.<clinit>(HibernateUtil.java:12) 
    ... 26 more 
Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from invalid mapping 
    at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:604) 
    at org.hibernate.cfg.Configuration.addResource(Configuration.java:668) 
    ... 33 more 
Caused by: org.xml.sax.SAXParseException: The content of element type "list" must match "(meta*,subselect?,cache?,synchronize*,comment?,key,(index|list-index),(element|one-to-many|many-to-many|composite-element|many-to-any),loader?,sql-insert?,sql-update?,sql-delete?,sql-delete-all?,filter*)". 
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195) 
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131) 
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384) 
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318) 
    at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:2017) 
    at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator.java:901) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1782) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2938) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648) 
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737) 
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119) 
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205) 
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522) 
    at org.dom4j.io.SAXReader.read(SAXReader.java:465) 
    at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:601) 
    ... 34 more 
[WARN] Nested in java.lang.ExceptionInInitializerError: 
org.hibernate.InvalidMappingException: Could not parse mapping document from resource com/BiddingSystem/domain/Student.hbm.xml 
    at org.hibernate.cfg.Configuration.addResource(Configuration.java:671) 
    at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1679) 
    at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1647) 
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1626) 
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1600) 
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1520) 
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1506) 
    at com.BiddingSystem.server.HibernateUtil.<clinit>(HibernateUtil.java:12) 
    at com.BiddingSystem.server.GreetingServiceImpl.<init>(GreetingServiceImpl.java:33) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
    at java.lang.Class.newInstance0(Class.java:355) 
    at java.lang.Class.newInstance(Class.java:308) 
    at org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153) 
    at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:463) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:324) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) 
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) 
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488) 
Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from invalid mapping 
    at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:604) 
    at org.hibernate.cfg.Configuration.addResource(Configuration.java:668) 
    ... 33 more 
Caused by: org.xml.sax.SAXParseException: The content of element type "list" must match "(meta*,subselect?,cache?,synchronize*,comment?,key,(index|list-index),(element|one-to-many|many-to-many|composite-element|many-to-any),loader?,sql-insert?,sql-update?,sql-delete?,sql-delete-all?,filter*)". 
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195) 
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131) 
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384) 
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318) 
    at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:2017) 
    at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator.java:901) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1782) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2938) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648) 
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737) 
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119) 
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205) 
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522) 
    at org.dom4j.io.SAXReader.read(SAXReader.java:465) 
    at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:601) 

Répondre

3

Vous devez utiliser un ensemble plutôt que d'une liste. Pour mapper une liste, vous avez besoin d'une colonne supplémentaire qui spécifie l'index dans la liste où chaque membre est présent (un ou un élément). Dans mon expérience, il est préférable d'éviter le support de mappage List d'Hibernate.

+0

Le problème est que je suis en utilisant un widget qui a besoin de la liste java. J'ai besoin de faire fonctionner cette liste !! – Noor

+0

Quelqu'un peut-il aider à faire le travail de mise en veille prolongée liste avec pour un à plusieurs, plusieurs à un et plusieurs à plusieurs – Noor

+0

Vous pouvez facilement convertir l'ensemble à une liste juste en copiant dans un ArrayList, par exemple. Bien que vous deviez réfléchir à l'ordre dans lequel vous voulez placer la liste, et si cet ordre est spécifié dans la base de données, ou simplement au résultat du tri. – araqnid

0

Demandez à regarder here. Cela résoudra probablement votre problème.

+0

Ya, j'ai utilisé cette implémentation mais j'ai eu pas mal d'erreurs. La mise en œuvre ci-dessus est la même mise en œuvre – Noor

+0

Il semble qu'il ne peut pas analyser le bloc de liste. Au lieu de , pouvez-vous essayer avec ? –

+0

Non, malheureusement, il échoue même en changeant l'étiquette de la colonne. Existe-t-il des outils qui peuvent générer un fichier de mappage approprié, je suis alimenté en écrivant ces fichiers de mapping – Noor

Questions connexes