本人新手自学,希望有牛人大大能指点 没有人能求 助只能上网问了
问题如下:
Teacher 和 Student 多对多关系
Teacher 设的主导 @ManyToMany
数据表是 teacher student 中间表 teacher_student
现在teacher表中有王老师 和 李老师
王老师有如下学生 :王倩,李婷,王诗龄
李老师有如下学生 :李丽,李萌,李菲
需求是这样的!将王老师下面的李婷 分派给 李老师
代码如下 :
public void update() {
tx = session.beginTransaction();
// 1.查出王老师
Teacher tw = (Teacher) session.get(Teacher.class, 2l);
for (Student stus : tw.getStudents()) {
// 通过id找到李婷 进行判断
if (stus.getId() == 5l) {
//封装李婷 的属性
Student s = new Student();
s.setId(stus.getId());
s.setName(stus.getName());
//找到李老师
students.add(s);
Session session2 = sessionFactory.getCurrentSession();
Teacher tl = (Teacher) session2.get(Teacher.class, 4l);
//将李婷修改到李老师班下
tl.setStudents(students);
session2.update(tl);
session.clear();
Student lt = (Student) session.get(Student.class, 5l);
session.delete(lt);
tx.commit();
}
}
}
然后就报错了 :
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
Caused by: java.sql.BatchUpdateException: Cannot delete or update a parent row: a foreign key constraint fails (`hibernate`.`teacher_student`, CONSTRAINT `FK2E2EF2DEFA3DB194` FOREIGN KEY (`student_id`) REFERENCES `student` (`id`))
相关推荐
以上就是关于Hibernate单向多对多关联映射的基本介绍和实践。实际应用中,还需考虑性能优化、事务管理、懒加载等问题。通过不断的练习和学习,你可以更熟练地掌握这一重要功能,提升项目开发的效率和质量。
本主题聚焦于"hibernate单向多对多映射",特别是在XML配置文件中的实现。在这个过程中,我们将探讨多对多关系的原理,以及如何在Hibernate中通过XML配置文件来定义这种关系。 首先,我们需要理解多对多关系的概念。...
以下是对"hibernate单向多对多映射(注解版)"的详细解释。 首先,我们需要理解多对多关系的概念。在数据库设计中,多对多关系意味着一个实体可以与多个其他实体相关联,反之亦然。例如,学生和课程之间的关系就是多...
本项目“Hibernate学习:单向多对一关联 工程”专注于讲解Hibernate中的单向多对一关联映射,这是数据库设计中常见的关系类型,尤其在处理具有层次结构的数据时。 单向多对一关联指的是在一个实体类中有一个引用,...
对于单向多对一关联,通常是在多方(拥有多个实体)的类中添加一个对单方(拥有单一实体)的引用。 例如,我们可以创建两个实体类:`Employee`(员工)和`Department`(部门)。在`Employee`类中,我们将有一个`...
在Java的持久化框架Hibernate中,单向一对多关联映射是常见的数据关系处理方式,尤其是在处理数据库中的实体类和表之间的关系时。本主题主要关注如何使用注解来实现这种映射。Hibernate通过注解使得对象关系映射...
在本主题"Hibernate单向一对多关联映射(XML版)"中,我们将深入探讨如何使用XML配置来实现数据库中一个实体类对应多个实体类的关联关系。 在Hibernate中,一对多关联是一种常见的关系映射类型,它反映了数据库中的...
hibernate关联映射注解多对多单向关联、
本文将详细讨论在Hibernate 5中如何实现ManyToMany单向维护的多对多关联。 首先,我们要理解多对多关联的基本概念。在数据库设计中,多对多关系意味着一个表中的记录可以与另一个表中的多个记录相关联,反之亦然。...
“Hibernate基于外键的一对多单向关联”这个标题指的是在Java持久化框架Hibernate中,如何通过外键实现一个实体类(如订单)与另一个实体类(如商品)之间的一对多关系,并且这种关联是单向的,即从订单端可以访问到...
本篇文章将深入探讨Hibernate中的一对一外键单向关联。 首先,一对一外键关联指的是一个实体通过外键直接引用另一个实体的主键。在单向关联中,只有其中一个实体知道另一个实体的存在,而另一个实体则无感知。这种...
本教程聚焦于Hibernate中的单向一对多关联映射,这是一个常见的实体关系模型,广泛应用于各种业务场景。 在数据库设计中,一对多关系意味着一个父表记录可以与多个子表记录相关联。例如,一个学生可以有多个课程,...
**标题:“Hibernate的单向多对一”** 在Java编程中,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库与Java对象之间的交互。在数据模型设计中,多对一是常见的关联关系,其中“多”的一方关联“一...
多对多单向关联 <br>需要注意映射规则: <set name="users" table="t_user_role"><br> <key column="roleid"/><br> <many-to-many class="com.bjsxt.hibernate.User" column="userid"/> </set>
"Hibernate单向关联代码示例"是一个实用的学习资源,帮助开发者理解如何在实际项目中实现单向关联。在这个示例中,你将看到两个实体类之间的单向关联,并学习到如何在Java代码中配置和操作这些关联。 单向关联分为...
总的来说,Hibernate的一对一唯一外键关联(单向关联)是通过在一方实体中定义另一方实体的引用,并通过注解或XML映射文件进行配置来实现的。这种关联方式简化了对象关系的管理,但同时也需要开发者在操作关联对象时...
1. 配置并创建单向多对一关联,如“区县”和“街道”的关系。 2. 创建双向一对多关联,如“街道”和“区县”的双向关系。 3. 实现多对多关联,例如OA系统中项目和人员的对应关系管理。 在实体类中,我们可以使用...
单向多对多关系中,一个实体可以与多个其他实体关联,而其他实体不知道这些关联。例如,一个用户可以订阅多个新闻类别,但类别并不知道哪些用户订阅了它们。配置时,使用`@ManyToMany`注解,并在拥有引用的一方定义`...