Hibernate一对多多对一的相关配置和操作
来源:互联网 发布:sqlserver 建用户语录 编辑:程序博客网 时间:2024/05/18 03:17
一对多和多对一之间的操作
拿简单的我们最常见的例子去举例:一个老师可以有多个学生,但是一个学生只能对应一个老师,那么老师就是多的一方,学生就是少的一方
先看下实体类吧:
我们在多方配置一个属性把学生配置到一个set集合里面,在一方配置Teacher属性,
配置文件:
这个是多方的配置文件
这个是一方的配置文件
级联操作这个配置一般不建议配置,目的是为了简化代码,少写两行代码,一般使用的是save-update,delete有风险
=========================测试代码===========================
package TestOne2many;
import java.util.HashSet;
import java.util.Set;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;
import Bean.Student;
import Bean.Teacher;
import common.HibernateUitels;
public class Testadd {
@Test
public void tests() {
Session session=HibernateUitels.getSession();
Transaction tx = session.beginTransaction();
Teacher teacher=new Teacher();
teacher.setName("401");
Student a1=new Student();
a1.setName("k22");
Student a2=new Student();
a2.setName("hh4");
Set<Student> students =new HashSet<Student>();
students.add(a1);
students.add(a2);
teacher.setStudents(students);
a1.setTeacher(teacher);
a2.setTeacher(teacher);
session.save(teacher);
// session.save(a1);
// session.save(a2);
tx.commit();
}
@Test
//位学生增加老师
public void testadd1() {
Session session=HibernateUitels.getSession();
Transaction tx = session.beginTransaction();
Teacher teacher = session.get(Teacher.class, 1);
Student student=new Student();
student.setName("6969");
student.setTeacher(teacher);
session.save(student);
tx.commit();
}
@Test
//得到老师所教的学生
public void se() {
Session session=HibernateUitels.getSession();
Transaction tx = session.beginTransaction();
Teacher teacher = session.get(Teacher.class,1);
Set<Student> students = teacher.getStudents();
System.out.println(students.size());
tx.commit();
}
@Test
//为学生删除老师
public void testdelete() {
Session session=HibernateUitels.getSession();
Transaction tx = session.beginTransaction();
Student student = session.get(Student.class,1);
student.setTeacher(null);
tx.commit();
}
}
=======================补充=============
- Hibernate一对多多对一的相关配置和操作
- hibernate的一对多多对一映射SQLGrammarException异常
- hibernate :一对多和多对一的配置实例
- Hibernate之"一对多多对一关联关系"
- Hibernate中的cascade级联属性一对多多对一的增删改过程探讨
- 在单元测试hibernate的一对多多对一映射遇到异常
- hibernate中一对多多对一关系设计的理解(讲得好)
- 单表的一对多多对一的自关联配置
- Hibernate一对多多对多查询的排序
- hibernate配置单向一对多和多对一的关系
- hibernate的一对多和多对一关系映射
- hibernate的单向多对一和一对多
- hibernate里面的一对多和多对一映射
- Hibernate-一对多和多对一
- Hibernate关联关系配置(一对多、一对一、多对一和多对多)
- hibernate多对一、一对一、一对多、多对多的配置方法
- hibernate中多对一、一对一、一对多、多对多的配置方法
- hibernate中多对一、一对一、一对多、多对多的配置方法
- Java的switch语句练习
- java web 教程JSP九大内置对象及四个作用域
- 三电平逆变扫盲
- python函数—参数类型
- STM32Cube_FW_F4_V1.17 F4固件包百度网盘下载
- Hibernate一对多多对一的相关配置和操作
- java中Mysql数据库连接及实例
- Eclipse快捷键大全(总结)
- Linux rootfs(根文件系统讲解)
- 数据结构 实验0
- 动画 Animation read-only 问题
- 【JavaDemo】用Java输出金字塔( 三角形和倒三角形 )
- 配置centos 7.2 ngix
- 独家:巨头血洗智能音箱市场!双11囤货百万台抛售