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

问题描述

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

一个学生一个班级,班级一对多学生,班级中有一个Set里面存放学生,我执行下面的代码

 @Test
    public void testUpdateStuToNewClass(){
        Session session = factory.openSession();
        Transaction transaction = session.beginTransaction();
        Student stu = session.get(Student.class, 2L);
        Classes clazz = new Classes();
        clazz.setCname("2班");
        Set<Student> students = new HashSet<Student>();
        students.add(stu);
        clazz.setStudents(students);
        transaction.commit();
        session.close();
    }

我并没有session.save(classes),但是为什么会执行insert和update呢,classes不是临时状态的么 hibernate生成的sql如下

 Hibernate:
    select
        student0_.pid as pid1_1_0_,
        student0_.pname as pname2_1_0_,
        student0_.description as descript3_1_0_
    from
        Student student0_
    where
        student0_.pid=?
Hibernate:
    select
        max(cid)
    from
        Classes
Hibernate:
    insert
    into
        Classes
        (cname, cid)
    values
        (?, ?)
Hibernate:
    update
        Student
    set
        cid=?
    where
        pid=?

解决方案

不知道

解决方案二:

Hibernate一对多(单向)
Hibernate一对多(单向)
Hibernate一对多单向关联映射

时间: 2024-09-17 04:48:23

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

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

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

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 (sc

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

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

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.cfg.xml写了一个User的实体类建了个Tableuser_register我想通过hibernate来访问建好的table表,显示在浏览器上!我就想要个例子,最好有增删改查,谢谢各位大神了!! 解决方案 解决方案二:数据层:/*一定要有工具给你自动生成的session工厂(如果你用的IDE是MyEclipse那么在添Hibernate*将会给你自动生成).*/Sessionsess=HibernateSessionFactory.

[华为机试练习题]49.向升序单向链表中插入一个节点

题目 描述: 输入一个升序单向链表和一个链表节点,向单向链表中按升序插入这个节点. 输入为空指针的情况视为异常,另外不考虑节点值相等的情况. 链表结点定义如下: struct ListNode { int m_nKey; ListNode* m_pNext; }; 详细描述: 接口说明 原型: ListNode* InsertNodeToList(ListNode* pListHead, ListNode* pInsertNode); 输入参数: ListNode* pListHead 单向链表

Hibernate实现注册,注册一个账号后得重启服务器才能注册第二个,不然报错

问题描述 Hibernate实现注册,注册一个账号后得重启服务器才能注册第二个,不然报错 public class RegisterAction extends ActionSupport{ private static final long serialVersionUID = 1L; User user = new User(); public User getUser() { return user; } public void setUser(User user) { this.user