2010-12-14 5 views
0

Java List를 사용하여 최대 다수의 예제를 최대 절전 모드로 만들려고합니다. 내 코드는 다음과 같습니다. 몇 가지 오류가 있습니다.최대 절전 모드 Java List를 사용하여 다 대다 양방향 매핑

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

} 

코스 : 누군가가 나에게이 문제를 해결하는 데 도움이 될 수 있다면, 그것은 물론 많은 학생들이 취할 수 큰

학생이 많은 코스를 를 취할 수

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

학생 클래스 것 종류 :

public class Course implements java.io.Serializable { 

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

코스 매핑 파일 :

<?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> 

학생 매핑 파일 :

<?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> 

오류 :

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) 

답변

3

당신은 목록이 아닌 설정을 사용해야합니다. 목록을 매핑하려면 각 구성원이 존재하는 목록 내의 색인 (또는 요소)을 지정하는 추가 열이 필요합니다.

제 경험상 Hibernate의 List-mapping 지원을 피하는 것이 가장 좋습니다.

+0

문제는 자바 목록이 필요한 위젯을 사용하고 있다는 것입니다. 나는이 목록을 작동시킬 필요가있다 !! – Noor

+0

일대 다, 많음, 많음, 많은 수의 최대 절전 모드로 목록 작업을 할 수 있습니까? – Noor

+0

예를 들어 ArrayList에 복사하여 집합을 쉽게 목록으로 변환 할 수 있습니다. 목록을 원하는 순서와 데이터베이스에서 지정하는지 또는 정렬 결과 만 고려해야합니다. – araqnid

0

보기는 here입니다. 그것은 아마 당신의 probem을 해결할 것입니다.

+0

예,이 구현을 사용했지만 오류가 많습니다. 위의 구현은 동일한 구현입니다 – Noor

+0

목록 블록을 구문 분석 할 수없는 것 같습니다. 대신 를 사용해 볼 수 있습니까? –

+0

아쉽게도 열 태그를 변경해도 오류가 발생합니다. 적절한 매핑 파일을 생성 할 수있는 도구가 있습니까? 이러한 매핑 파일을 작성하는 것이 좋습니다. – Noor

관련 문제