hibernate映射exception

错误原因:在通过hibernate指示生成两个表之间的外键关系之后,一个表中引用的外键不在另一个表的参考范围里面。

解决:使之满足参考完整性

org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing

错误原因:在将classes持久化到数据库之前数据库中并没有students表

public void add() {
        Session session = sessionFactory.openSession();
        session.beginTransaction();
        Set students  =  new HashSet();
         for(int i =0;i<5;i++){
             Students s = new Students();
             s.setAddress(null);
             s.setGender(null);
             s.setName("num"+i);
             s.setClassnum(1);
             s.setClassnum(1);
             students.add(s);
         }
        Classes  c = new Classes();
        c.setClass_name("cs_1");
        c.setStudents(students);
        session.save(c);
        session.getTransaction().commit();
        session.close();
    }

解决:在classes(即一方)xml中配置cascade=all

时间: 2024-10-04 22:44:26

hibernate映射exception的相关文章

hibernate 大对象类型的hibernate映射

基本知识: 在 Java 中, java.lang.String 可用于表示长字符串(长度超过 255), 字节数组 byte[] 可用于存放图片或文件的二进制数据. 此外, 在 JDBC API 中还提供了 java.sql.Clob 和 java.sql.Blob 类型, 它们分别和标准 SQL 中的 CLOB 和 BLOB 类型对应. CLOB 表示字符串大对象(Character Large Object), BLOB表示二进制对象(Binary Large Object) Mysql

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

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

坑爹的Hibernate 映射文件错误提示org.xml.sax.SAXParseException

今天整整一个上午都在和hibernate做斗争,早上一来,继续昨天的项目开发,发现spring项目不能启动,从错误中看是hibernate错误,多半是hibernate配置有错误,关键是错误提示中显示“com.mdnet.travel.core.dao.ValidCodeDAOImpl”不能注入,经过仔细查看未见异常,而且这个文件好久没有改过了.没办法把hibernate的配置改成如下配置: <bean id="sessionFactory" class="org.sp

hibernate映射文件property常用属性

<property>常用属性name:映射类属性的名字column:对应数据库表的字段名 默认值为属性名 type:字段的类型 update:update操作时是否包含本字段的数据 默认值为true (设置为false则hibernate执行update语句时会把这个 字段忽略)insert:insert操作时是否包含本字段的数据 默认值为true (设置为false则hibernate执行insert语句时会把这个 字段忽略)formula:定义一个SQL来计算这个属性的值 access:H

9、Hibernate之关联映射(hibernate映射)

回顾Hibernate: 1. hibernate开发环境搭建 --> 引入jar: hibernate.jar + required + jpa + 驱动包 -> hibernate.cfg.xml -> javabean/*.hbm.xml -> Application 测试 2.hibernate api --> Configuration --> SessionFactory --> Session -> Transaction --->Que

Hibernate映射文件生成器by LDDXFS

本文由 http://www.cnblogs.com/LDDXFS/ 原创,转载请注明本文出处,邮件LDDXFS#qq.com. 1作用 它根据properties文件上定义的参数得到多个 Domain.java文件 依据可修改的xml模板文件生成Hibernate的映射文件 Domain.hbm.xml 可以提取字段上的doc注释到Domain.hbm.xml文件对应的配置上 支持的关联关系有 一对一,一对多Set List,多对一. 最终 生成的hbm.xml文件如下 1 <?xml ver

Hibernate 映射字段问题[ImprovedNamingStrategy]

Hibernate 使用JPA 对于映射有3种规则可以配置:DefaultNamingStrategy,ImprovedNamingStrategy,EJB3NamingStrategy 这里只说ImprovedNamingStrategy,其他自行看Hibernate代码,ImprovedNamingStrategy的代码如下,是一个singleton instance: /* * Hibernate, Relational Persistence for Idiomatic Java * *

Hibernate映射文件

hibernate映射文件 作用:将实体类和数据库中的表建立起联系 每个数据库表对应一个映射文件和实体类 1 根节点<hibernate-mapping> package属性表示实体类所在的包,可以省略 <hibernate-mapping package="com.bdqn.hiber.bean"> 2 <class>节点 name属性表示实体类的类名(当根节点的package属性省略时,名称则要写成却类名,例:com.xsh.bean.User)

02.Hibernate映射基础

前言:Hibernate的核心功能是根据数据库到实体类的映射,自动从数据库绑定数据到实体类.使我们操作实体类(Java对象)就能对数据库进行增.删.查.改,而不用调用JDBC API使数据操作变得简单而不繁琐.本文就主要讲解Hibernate的映射文件的映射机制,但本文讲解的重点在于通过Hibernate如何配置实体类到数据库表的映射,至于数据库表(或实体类)之间的各种关联关系的映射会在后面的文章中讲到. 1.映射配置文件基础(XXX.hbm.xml) 说明:本节只是对Hibernate的映射文