Hibernate单向一对多应注意的问题

这个 问题困扰我10多天,终于干掉了。

本人使用myeclipse6.5ga,进行hibernate一对多单向关联实例。

一直报如下异常:

Hibernate:
  insert
  into
    hbql.score
    (score, type)
  values
。。。。。。。。。。。。。。。。。。。
17:03:32,484 DEBUG JDBCExceptionReporter:69 - could not insert: [score.Score] [insert into hbql.score (score, type) values (?, ?)]
java.sql.SQLException: Field 'sid' doesn't have a default value
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
..................//太长发不了。省略点
17:03:32,484 WARN JDBCExceptionReporter:77 - SQL Error: 1364, SQLState: HY000
17:03:32,484 ERROR JDBCExceptionReporter:78 - Field 'sid' doesn't have a default value
保存对象student.Student失败!
17:03:32,484 DEBUG JDBCTransaction:152 - rollback
org.hibernate.exception.GenericJDBCException: could not insert: [score.Score]
    at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
    ...........................//太长发不了。省略点
Caused by: java.sql.SQLException: Field 'sid' doesn't have a default value
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)

测试程序如下:

Student student=new Student("huizhi","2708",200);
Score score1=new Score(98,"1");
Score score2=new Score(90,"2");
Set set=new HashSet();
set.add(score1);
set.add(score2);
student.setScores(set);
saveObject(student);
printStudents();
----------------------------------------------------------------------------------------------------------------------

时间: 2024-11-03 13:15:55

Hibernate单向一对多应注意的问题的相关文章

关于hibernate单向一对多的一个问题

问题描述 关于hibernate单向一对多的一个问题 一个学生一个班级,班级一对多学生,班级中有一个Set里面存放学生,我执行下面的代码 @Test public void testUpdateStuToNewClass(){ Session session = factory.openSession(); Transaction transaction = session.beginTransaction(); Student stu = session.get(Student.class,

Hibernate 单向一对多 插入数据问题

问题描述 Father对Child是单向一对多,以下是我写的代码Father类:publicclassFather{privateintfid;privateStringcardId;privateStringname;privateSet<Child>childs=newHashSet<Child>();publicFather(StringcardId,Stringname){super();this.cardId=cardId;this.name=name;}publicin

【SSH系列】Hibernate映射 -- 一对多关联映射

     映射原理       一对多关联映射和多对一关联映射的映射原理是一样一样的,所以说嘛,知识都是相通的,一通百通,为什么说一对多关联映射和多对一关联映射是一样的呢?因为她们都是在多的一端加入一个外键,指向一的一段,关联关系都是在多的一端进行维护,只是我们在写映射的时候发生了变化.       一对多和多对一的映射原理是一样的,但是她们之间也存在着小小的区别,毕竟世界上没有两片完全相同的叶子,她们之间的区别就是维护的关系不同,我们先来看多对一,多端维护一端的关系,在加载多端的时候,可以将一

图片-Java SSH单向一对多 获取多的一方 filepath字段不为空的行数 应该怎么写?数据库是oracle

问题描述 Java SSH单向一对多 获取多的一方 filepath字段不为空的行数 应该怎么写?数据库是oracle SSH单向一对多 获取多的一方 filepath字段不为空的行数 应该怎么写?数据库是oracle 一的一方是 药品表(drp_yp). 有多种药品 多的一方是图片(drp_tp)表,引用外键药品ID,不同的药品都有数量不限的图片 但是图片表存储着图片信息和图片分类信息 因为图片有分类. 所以有的记录的filepath实际上是空的. 但是我想获取 图片路径filepath不为空

hibernate 枚举一对多该怎么做?

问题描述 hibernate 枚举一对多该怎么做? 例如说我有个类用户,还有个角色枚举.那么如果一个用户有多个角色枚举的标签的话,想用hibernate的一对多,那么怎么对枚举进行映射.跪求一个解决方案,角色枚举只能是枚举.不用一对多也可以. 解决方案 Hibernate中的一对多

Hibernate单向1-1含连接表映射实例详解

Hibernate单向1-1映射范例 其实 Many-to-one 和 one-to-one 非常相似,只需要在 <many-to-one> 的尖括号中添加 unique="true"即可 1.hibernate.cfg.xml  代码如下 复制代码 <!DOCTYPE hibernate-configuration PUBLIC         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

Java中Hibernate单向(1-N)映射实例详解

1.hibernate.cfg.xml <!DOCTYPE hibernate-configuration PUBLIC         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"         "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <s

hibernate单向和双向关联问题

问题描述 hibernate的<one-to-many>和<many-to-one>有什么居别,两者要是反过来不都一样了吗还有一个问题在这一对多或者多对一得关联映射下,我们如何通过选择来维护她是单向映射还是双向映射呢我们该怎么选择是单向还是双向谢谢 解决方案 解决方案二:恩没什么区别要看站在那个立场站的立场不同映射的关系就不同你要进行维护用控制反转inverse可以指定关联关系的控制方向解决方案三:<one-to-many>和<many-to-one>这个只

hibernate 映射-一对多双向

项目名称:shop_goods 使用spring ,hibernate,struts2,分别的版本如下: spring :3.2.3.RELEASE hibernate:4.2.2.Final struts2:2.3.4.1 使用xml配置,使用maven构建. 这里涉及两个实体类:商品,超市.因为要讲解一对多的关系映射,所以假设商品和超市之间是多对一联系. 一个超市有多个商品,一个商品只属于一个超市. 实体类代码如下(省略setter,getter方法)   Java代码   package