首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

for entity: com.zzx.pojos.course column: cno (should be mapped with insert=

2011-12-26 
hibernate映射,高手指点下...我是按书上练习下Bag ..具体我也不知道是什么东西,有步骤,原代码。。现在出现好

hibernate映射,高手指点下...
我是按书上练习下Bag ..具体我也不知道是什么东西,有步骤,原代码。。现在出现好多异常 请大家帮帮忙。。现在在自己漫漫啃!!
我把代码帖出来 可能很多 ,不过我相信问题应该在映射那,但不会改。。希望大家帮我解决!谢谢

Java code
%%%% Error Creating SessionFactory %%%%org.hibernate.MappingException: Repeated column in mapping for entity: com.zzx.pojos.course column: cno (should be mapped with insert="false" update="false")    at org.hibernate.mapping.PersistentClass.checkColumnDuplication(PersistentClass.java:575)    at org.hibernate.mapping.PersistentClass.checkPropertyColumnDuplication(PersistentClass.java:597)    at org.hibernate.mapping.PersistentClass.checkColumnDuplication(PersistentClass.java:615)    at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:405)    at org.hibernate.mapping.RootClass.validate(RootClass.java:192)    at org.hibernate.cfg.Configuration.validate(Configuration.java:984)    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1169)    at com.zzx.hbm.HibernateSessionFactory.<clinit>(HibernateSessionFactory.java:31)    at com.zzx.test.BagTest.main(BagTest.java:17)%%%% Error Creating SessionFactory %%%%org.hibernate.MappingException: Could not read mappings from resource: com/zzx/pojos/course.hbm.xml    at org.hibernate.cfg.Configuration.addResource(Configuration.java:485)    at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1465)    at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1433)    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1414)    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1390)    at org.hibernate.cfg.Configuration.configure(Configuration.java:1310)    at com.zzx.hbm.HibernateSessionFactory.rebuildSessionFactory(HibernateSessionFactory.java:69)    at com.zzx.hbm.HibernateSessionFactory.getSession(HibernateSessionFactory.java:53)    at com.zzx.test.BagTest.main(BagTest.java:17)Caused by: org.hibernate.DuplicateMappingException: Duplicate class/entity mapping com.zzx.pojos.course    at org.hibernate.cfg.Mappings.addClass(Mappings.java:118)    at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:154)    at org.hibernate.cfg.Configuration.add(Configuration.java:386)    at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:427)    at org.hibernate.cfg.Configuration.addResource(Configuration.java:482)    ... 8 morejava.lang.NullPointerException    at com.zzx.test.BagTest.main(BagTest.java:20)


上面的是异常 
我把我的数据库也贴上:
SQL code
drop database if exists joblog;create database joblog CHARSET=gbk;use joblog; drop table if exists student; create table student( id int unsigned not null auto_increment comment 'id', sno int unsigned not null default '0' comment '学号', sname varchar(45) default null comment '姓名', ssex char(2) default null COMMENT '性别', sdept varchar(10) DEFAULT null comment '部门', sage int unsigned default null comment '年龄', saddress varchar(45)default null comment '籍贯', primary key (id) )charset = gbk; drop table if exists course ; create table course(       id int unsigned  not null auto_increment comment 'id',       cno int unsigned default null comment '课程号',       cname varchar(45) default null comment '课程名',       ccredit int unsigned null comment '学分',       primary key (id) ) charset =gbk;


持久化类:我简写 要不很多东西了 ,大家不好看! 以下只写属性。。
Java code
public class course  implements java.io.Serializable {      private Integer id;     private Integer cno;     private String cname;     private Integer ccredit;     private  student stu;

Java code
public class student  implements java.io.Serializable {     private Integer id;     private Integer sno;     private String sname;     private String ssex;     private String sdept;     private Integer sage;     private String saddress;     private List course=new ArrayList(); 



hbm.xml:
XML code
<hibernate-mapping>    <class name="com.zzx.pojos.course" table="course" catalog="joblog">        <id name="id" type="java.lang.Integer">            <column name="id" />            <generator class="identity"></generator>        </id>        <property name="cno" type="java.lang.Integer">            <column name="cno">                <comment>课程号</comment>            </column>        </property>        <property name="cname" type="java.lang.String">            <column name="cname" length="45">                <comment>课程名</comment>            </column>        </property>        <property name="ccredit" type="java.lang.Integer">            <column name="ccredit">                <comment>学分</comment>            </column>        </property>        <many-to-one name="stu" column="cno" cascade="save-update" fetch="join" ></many-to-one>    </class></hibernate-mapping>

   

XML code
<hibernate-mapping>    <class name="com.zzx.pojos.student" table="student" catalog="joblog">        <id name="id" type="java.lang.Integer">            <column name="id" />            <generator class="identity"></generator>        </id>        <property name="sno" type="java.lang.Integer">            <column name="sno" not-null="true">                <comment>学号</comment>            </column>        </property>        <property name="sname" type="java.lang.String">            <column name="sname" length="45">                <comment>姓名</comment>            </column>        </property>        <property name="ssex" type="java.lang.String">            <column name="ssex" length="2">                <comment>性别</comment>            </column>        </property>        <property name="sdept" type="java.lang.String">            <column name="sdept" length="10">                <comment>部门</comment>            </column>        </property>        <property name="sage" type="java.lang.Integer">            <column name="sage">                <comment>年龄</comment>            </column>        </property>        <property name="saddress" type="java.lang.String">            <column name="saddress" length="45">                <comment>籍贯</comment>            </column>        </property>        <bag name="course" inverse="true" table="course" cascade="all">        <key>        <column name="cno"></column>        </key>        <one-to-many class="com.zzx.pojos.course"/>        </bag>    </class></hibernate-mapping>





[解决办法]
course.hbm.xml
有错误。。。
确切的说one to many 写错了
<set name="xxx" inverse="true" > 


<key column="xxx"/> 
<one-to-many class="xxx"/> 
</set> 

[解决办法]
照异常信息看说明你的 cascade="all" 的值不能为all .
你试着用save-update 或 其他看看。
[解决办法]
course.hbm.xml中
<many-to-one name="stu" column="cno" cascade="save-update" fetch="join" ></many-to-one>
该句的column属性是不是应该为student表的主键列?也就是column="id"?
两个表应该存在主外键关系吧...
[解决办法]
<many-to-one name="stu" column="cno" cascade="save-update" fetch="join" ></many-to-one>
删了
外键关联只需要在一端定义就可以了啊

热点排行