hibernate 维护多对多表的问题!插入数据不成功

问题描述

搞了半天了也不知道为什么,大家帮帮我啊,加我QQ教我也行:494005463!谢谢Member类:packagejfish;importjava.util.Date;importjava.util.HashSet;importjava.util.Set;publicclassMember{privateStringname;//会员名privateStringid;//会员IDprivateSet<Song>store_Song=newHashSet<Song>();publicStringgetId(){returnid;}publicvoidsetId(Stringid){this.id=id;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicSet<Song>getStore_Song(){returnstore_Song;}publicvoidsetStore_Song(Set<Song>storeSong){store_Song=storeSong;}}

Song类:packagejfish;importjava.util.Date;importjava.util.HashSet;importjava.util.Set;publicclassSong{privateStringid;//歌曲IDprivateStringname;//歌曲名privateSet<Member>store_Member=newHashSet<Member>();publicStringgetId(){returnid;}publicvoidsetId(Stringid){this.id=id;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicSet<Member>getStore_Member(){returnstore_Member;}publicvoidsetStore_Member(Set<Member>storeMember){store_Member=storeMember;}}

Song.hbm.xml:<?xmlversion="1.0"?><!DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping><classname="jfish.Song"><idname="id"><generatorclass="uuid"/></id><propertyname="name"unique="true"not-null="true"length="30"column="c_name"/><setname="store_Member"table="t_store_song"inverse="false"lazy="true"cascade="all"><keycolumn="song_id"/><many-to-manyclass="jfish.Member"/></set></class></hibernate-mapping>

Member.hbm.xml:<?xmlversion="1.0"?><!DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping><classname="jfish.Member"><idname="id"length="32"><generatorclass="uuid"/></id><propertyname="name"unique="true"not-null="true"length="30"column="c_name"/><setname="store_Song"table="t_store_song"inverse="true"><keycolumn="member_id"/><many-to-manyclass="jfish.Song"/></set></class></hibernate-mapping>

测试类:packagejfish;importjava.util.Date;importjava.util.HashSet;importjava.util.Set;importorg.hibernate.Session;importorg.hibernate.SessionFactory;importorg.hibernate.cfg.Configuration;importorg.hibernate.tool.hbm2ddl.SchemaExport;publicclassTest{publicstaticvoidmain(String[]arg){//读取hibernate配置文件hibernate.cfg.xmlConfigurationcfg=newConfiguration().configure();//创建SessionFactorySessionFactoryfactory=cfg.buildSessionFactory();//创建SessionSessionsession=factory.openSession();//开启事务session.beginTransaction();Membermember=newMember();member.setName("nninnn11");Songsong=newSong();song.setName("111111");session.save(song);session.save(member);//member.getStore_Song().add(song);song.getStore_Member().add(member);//提交事务session.getTransaction().commit();if(session.isOpen()){session.close();}}}

错误信息:Hibernate:insertintoSong(c_name,id)values(?,?)Hibernate:insertintoMember(c_name,id)values(?,?)Hibernate:insertintot_store_song(song_id,elt)values(?,?)对这句话的疑问,应该生成的是insertintot_store_song(song_id,elt,member_id)values(?,?,?);19:53:11,815WARNJDBCExceptionReporter:77-SQLError:1364,SQLState:HY00019:53:11,817ERRORJDBCExceptionReporter:78-Field'member_id'doesn'thaveadefaultvalue19:53:11,821ERRORAbstractFlushingEventListener:301-Couldnotsynchronizedatabasestatewithsession

解决方案

本帖最后由 fullmoonyes 于 2010-04-21 20:03:41 编辑
解决方案二:
顶起吧,关注!!!
解决方案三:
<idname="id"length="32"><generatorclass="uuid"/></id>
解决方案四:
楼上的,那里怎么了啊?说清楚点啊!
解决方案五:
大家都来看看啊,急啊!

时间: 2024-11-01 01:06:35

hibernate 维护多对多表的问题!插入数据不成功的相关文章

sql插入数据不成功……

问题描述 sql插入数据不成功-- 解决方案 SQL语法异常,这么多乱码呢?插入数据有问题吧. 解决方案二: 先把sql语句打印出来看看,然后到数据库中执行看是否语法正确 解决方案三: 映射xml中的的值应该设置成native

sql查询-sql插入数据不成功。。。。

问题描述 sql插入数据不成功.... 数据库连接上了,但是执行 insert into user(name, password, age, sex, birthday) values ('李兴华', '12345', 30, '男', '1980-04-27');语句不成功,我单独在数据库上执行都可以,求解? 解决方案 单独这么一条sql语句是看不出问题的,你得贴出代码 解决方案二: 需要结合程序来看,还有就是你使用的是什么数据库呢? 解决方案三: 解决了,数据库连接错了,呵呵,谢谢二位 解决

Android 通过ContentProvider向SQLite数据库插入数据不成功

问题描述 我自己写了一个ContentProvider,在执行向SQLiteDatabase数据库中插入一条记录时不成功,打出的log如下:11-27 02:00:11.696: ERROR/Database(997): android.database.sqlite.SQLiteException: table employee has no column named name: , while compiling: INSERT INTO employee(name) VALUES(?);

用shell脚本在mysql表中批量插入数据的方法_linux shell

很多时候需要在mysql表中插入大量测试数据,下面分享一个用shell脚本通过while循环批量生成mysql测试数据的方法,你只需要根据你自己的表结构来生成sql语句即可. 复制代码 代码如下: #!/bin/bash i=1;MAX_INSERT_ROW_COUNT=$1;while [ $i -le $MAX_INSERT_ROW_COUNT ]do    mysql -uroot -proot afs -e "insert into afs_test (name,age,createTi

.Net创建Excel文件(插入数据、修改格式、生成图表)的方法

1.添加Excel引用 可以在.Net选项卡下添加Microsoft.Office.Interop.Excel引用,或在COM下添加Microsoft Excel 12.0 Object Library.它们都会生成Microsoft.Office.Interop.Excel.dll. 2.创建Excel. 有两种方法创建一个Excel Workbook实例. 1.需要一个模板文件,使用Open方法,参数较多: 1 object miss = Missing.Value; 2 Applicati

急,求高手!!hive在向整合hbase的分区表插入数据时报错:Must specify table

问题描述 急,求高手!!hive在向整合hbase的分区表插入数据时报错:Must specify table hadoop版本:hadoop-2.7.12.7.1 hbase版本:hbase-1.1.2 hive版本:apache-hive-2.0.0-bin 本人是新手,在整合了hive和hbase之后,我在hive中创建了一张关联了hbase表的分区表,然后在向表插入数据的时候报错了,下面是插入语句和报错,求懂的人解答. visited_in_hive是关联了hbase表,准备插入数据的表

一起谈.NET技术,.Net创建Excel文件(插入数据、修改格式、生成图表)的方法

1.添加Excel引用 可以在.Net选项卡下添加Microsoft.Office.Interop.Excel引用,或在COM下添加Microsoft Excel 12.0 Object Library.它们都会生成Microsoft.Office.Interop.Excel.dll. 2.创建Excel. 有两种方法创建一个Excel Workbook实例. 1.需要一个模板文件,使用Open方法,参数较多: 1 object miss = Missing.Value;2 Applicatio

hibernate 如何插入数据到多对多的中间表中

问题描述 hibernate 如何插入数据到多对多的中间表中 hibernate 如何插入数据到多对多的中间表中 关联表已经存在,只是需要在中间表中插入数据 解决方案 全靠自动不用手动,在配置文件里配置好many-to-many的关系 解决方案二: 这种中间表一般都是用手动的..jdbcTemplate来插入的 解决方案三: 使用HibernateCallback,因为该类可以获取到session并且被HibernateCTemplate调用,拿到了session你就应该知道怎么做了. 解决方案

一起谈.NET技术,维护LINQ to SQL多对多表间关系

在项目开发中,经常会碰到维护多对多(many to many)关系表间关系的操作,例如为人员配置角色.为人员配置部门.为产品配置类别等.如果没有经过程序设计而直接进行开发,将会过多地关注其细节问题,如:应删除那些数据.应添加哪些数据.应保留哪些数据等,导致开发效率降低. 名词解释 在本文开始之前,首先以用户-用户角色-角色表为例,声明三个概念: l  主表:如果为用户配置角色,那么用户就是主表:如果为角色配置用户,那么角色就是主表. l  从表:如果为用户配置角色,那么角色就是从表. l  关系