报以下错误
%%%% Error Creating SessionFactory %%%%
org.hibernate.InvalidMappingException: Could not parse mapping document from resource com/jixiyan/po/Ostudent.hbm.xml
at org.hibernate.cfg.Configuration.addResource(Configuration.java:569)
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)Caused by: org.hibernate.DuplicateMappingException: Duplicate collection role mapping com.jixiyan.po.Ostudent.ogrades
at org.hibernate.cfg.Mappings.addCollection(Mappings.java:124)
at org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:2066)
at org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:2041)
at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:359)
at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:273)
at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:144)
at org.hibernate.cfg.Configuration.add(Configuration.java:669)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:504)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:566)
... 90 more
在ograde表中有两个实体ostudent和oexampaper,后两个和前一个都是一对多的关系
配置文件如下Ograde.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">
<!--
Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
<class name="po.Ograde" table="OGRADE" schema="SCOTT" lazy="false">
<id name="id" type="java.lang.Long">
<column name="ID" precision="22" scale="0" />
<generator class="increment" />
</id>
<many-to-one name="oexampaper" class="com.jixiyan.po.Oexampaper" fetch="select">
<column name="EXAMID" precision="22" scale="0" />
</many-to-one>
<many-to-one name="ostudent" class="com.jixiyan.po.Ostudent" fetch="select">
<column name="STUID" length="50" />
</many-to-one>
<property name="grade" type="java.lang.String">
<column name="GRADE" length="50" />
</property>
<property name="time" type="java.lang.String">
<column name="TIME" length="50" />
</property>
</class>
</hibernate-mapping>
-----------------------------------------------------------------------------------
Ostudent.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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.jixiyan.po.Ostudent" table="ostudent" catalog="scott">
<id name="id" type="java.lang.String">
<column name="id" length="50" />
<generator class="increment" />
</id>
<property name="name" type="java.lang.String">
<column name="name" length="50" not-null="true" />
</property>
<property name="password" type="java.lang.String">
<column name="password" length="50" />
</property>
<property name="sex" type="java.lang.String">
<column name="sex" length="6" />
</property>
<property name="birthday" type="java.lang.String">
<column name="birthday" length="50" />
</property>
<property name="tel" type="java.lang.String">
<column name="tel" length="50" />
</property>
<property name="college" type="java.lang.String">
<column name="college" length="30" />
</property>
<set name="ogrades" inverse="true" cascade="all">
<key>
<column name="ID" length="50" not-null="true" />
</key>
<one-to-many class="com.jixiyan.po.Ograde" />
</set>
</class>
</hibernate-mapping>
-----------------------------------------------------------------------------------------------
Oexampaper.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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.jixiyan.po.Oexampaper" table="oexampaper" catalog="scott">
<id name="id" type="java.lang.String">
<column name="id" length="50" />
<generator class="increment" />
</id>
<property name="type" type="java.lang.String">
<column name="type" length="50" not-null="true" />
</property>
<property name="style" type="java.lang.String">
<column name="style" length="50" not-null="true" />
</property>
<property name="name" type="java.lang.String">
<column name="name" length="200" not-null="true" />
</property>
<property name="examlevel" type="java.lang.String">
<column name="examlevel" length="50" />
</property>
<property name="totalpoint" type="java.lang.String">
<column name="totalpoint" length="50" />
</property>
<property name="totalque" type="java.lang.String">
<column name="totalque" length="50" />
</property>
<property name="schoicenum" type="java.lang.String">
<column name="schoicenum" length="50" />
</property>
<property name="schoicepoint" type="java.lang.String">
<column name="schoicepoint" length="50" />
</property>
<property name="mchoicenum" type="java.lang.String">
<column name="mchoicenum" length="50" />
</property>
<property name="mchoicepoint" type="java.lang.String">
<column name="mchoicepoint" length="50" />
</property>
<property name="judgenum" type="java.lang.String">
<column name="judgenum" length="50" />
</property>
<property name="judgepoint" type="java.lang.String">
<column name="judgepoint" length="50" />
</property>
<property name="status" type="java.lang.String">
<column name="status" length="20" />
</property>
<property name="statusGrade" type="java.lang.String">
<column name="status_grade" length="20" />
</property>
<property name="time" type="java.lang.String">
<column name="time" length="20" />
</property>
<set name="ogrades" inverse="true">
<key>
<column name="id" length="50" />
</key>
<one-to-many class="com.jixiyan.po.Ograde" />
</set>
</class>
</hibernate-mapping>
关键是帮我看下一对多表的映射写对了没 谢谢啦
%%%% Error Creating SessionFactory %%%%
org.hibernate.InvalidMappingException: Could not parse mapping document from resource com/jixiyan/po/Ostudent.hbm.xml
at org.hibernate.cfg.Configuration.addResource(Configuration.java:569)
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)Caused by: org.hibernate.DuplicateMappingException: Duplicate collection role mapping com.jixiyan.po.Ostudent.ogrades
at org.hibernate.cfg.Mappings.addCollection(Mappings.java:124)
at org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:2066)
at org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:2041)
at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:359)
at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:273)
at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:144)
at org.hibernate.cfg.Configuration.add(Configuration.java:669)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:504)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:566)
... 90 more
在ograde表中有两个实体ostudent和oexampaper,后两个和前一个都是一对多的关系
配置文件如下Ograde.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">
<!--
Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
<class name="po.Ograde" table="OGRADE" schema="SCOTT" lazy="false">
<id name="id" type="java.lang.Long">
<column name="ID" precision="22" scale="0" />
<generator class="increment" />
</id>
<many-to-one name="oexampaper" class="com.jixiyan.po.Oexampaper" fetch="select">
<column name="EXAMID" precision="22" scale="0" />
</many-to-one>
<many-to-one name="ostudent" class="com.jixiyan.po.Ostudent" fetch="select">
<column name="STUID" length="50" />
</many-to-one>
<property name="grade" type="java.lang.String">
<column name="GRADE" length="50" />
</property>
<property name="time" type="java.lang.String">
<column name="TIME" length="50" />
</property>
</class>
</hibernate-mapping>
-----------------------------------------------------------------------------------
Ostudent.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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.jixiyan.po.Ostudent" table="ostudent" catalog="scott">
<id name="id" type="java.lang.String">
<column name="id" length="50" />
<generator class="increment" />
</id>
<property name="name" type="java.lang.String">
<column name="name" length="50" not-null="true" />
</property>
<property name="password" type="java.lang.String">
<column name="password" length="50" />
</property>
<property name="sex" type="java.lang.String">
<column name="sex" length="6" />
</property>
<property name="birthday" type="java.lang.String">
<column name="birthday" length="50" />
</property>
<property name="tel" type="java.lang.String">
<column name="tel" length="50" />
</property>
<property name="college" type="java.lang.String">
<column name="college" length="30" />
</property>
<set name="ogrades" inverse="true" cascade="all">
<key>
<column name="ID" length="50" not-null="true" />
</key>
<one-to-many class="com.jixiyan.po.Ograde" />
</set>
</class>
</hibernate-mapping>
-----------------------------------------------------------------------------------------------
Oexampaper.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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.jixiyan.po.Oexampaper" table="oexampaper" catalog="scott">
<id name="id" type="java.lang.String">
<column name="id" length="50" />
<generator class="increment" />
</id>
<property name="type" type="java.lang.String">
<column name="type" length="50" not-null="true" />
</property>
<property name="style" type="java.lang.String">
<column name="style" length="50" not-null="true" />
</property>
<property name="name" type="java.lang.String">
<column name="name" length="200" not-null="true" />
</property>
<property name="examlevel" type="java.lang.String">
<column name="examlevel" length="50" />
</property>
<property name="totalpoint" type="java.lang.String">
<column name="totalpoint" length="50" />
</property>
<property name="totalque" type="java.lang.String">
<column name="totalque" length="50" />
</property>
<property name="schoicenum" type="java.lang.String">
<column name="schoicenum" length="50" />
</property>
<property name="schoicepoint" type="java.lang.String">
<column name="schoicepoint" length="50" />
</property>
<property name="mchoicenum" type="java.lang.String">
<column name="mchoicenum" length="50" />
</property>
<property name="mchoicepoint" type="java.lang.String">
<column name="mchoicepoint" length="50" />
</property>
<property name="judgenum" type="java.lang.String">
<column name="judgenum" length="50" />
</property>
<property name="judgepoint" type="java.lang.String">
<column name="judgepoint" length="50" />
</property>
<property name="status" type="java.lang.String">
<column name="status" length="20" />
</property>
<property name="statusGrade" type="java.lang.String">
<column name="status_grade" length="20" />
</property>
<property name="time" type="java.lang.String">
<column name="time" length="20" />
</property>
<set name="ogrades" inverse="true">
<key>
<column name="id" length="50" />
</key>
<one-to-many class="com.jixiyan.po.Ograde" />
</set>
</class>
</hibernate-mapping>
关键是帮我看下一对多表的映射写对了没 谢谢啦
<key>
<column name="ID" length="50" not-null="true" />
</key>
<one-to-many class="com.jixiyan.po.Ograde" />
</set>
里面哪个字段写错了啊?
另外另外set节点中应该再配置一个table属性,多对多要产生一个中间表。
另外你的key别都叫id,主键也叫id,肯定是不行的,建议你这样
<set name="ogrades" table="exam_grade">
<key column="exam_id"/>
起点有意义的名字