Hibernate一对多关系映射及各种操作
来源:互联网 发布:黑客电影知乎 编辑:程序博客网 时间:2024/05/16 05:55
1、一对多关系映射
一的一端:
Student.java
import java.util.HashSet;import java.util.Set;public class Student {private String number;private String name;private String sex;private Set<Course> courses=new HashSet<Course>();//省略get,set方法}Student.hbm.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping><class name="com.mrw.test1.Student" table="Student"><id name="number"><generator class="assigned"></generator></id><property name="name"></property><property name="sex"></property><set name="courses"><key column="student_number"></key><one-to-many class="com.mrw.test1.Course"/></set></class></hibernate-mapping>
多的一端:
Course.java
public class Course {private Integer id;private String coursename;private Student student;//省略get,set方法}
Course.hbm.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping> <class name="com.mrw.test1.Course" table="Course"> <id name="id"> <generator class="native"></generator> </id> <property name="coursename"/> <many-to-one name="student" class="com.mrw.test1.Student" column="student_number"></many-to-one> </class></hibernate-mapping>sql代码为:
2、保存数据
Session session=HibernateUtil.getSessionFactory().getCurrentSession();Transaction tx=session.beginTransaction();tudent student=new Student();student.setName("好学生");student.setNumber("2013115207");student.setSex("男");Course course=new Course();course.setCoursename("c语言");student.getCourses().add(course);session.save(student);session.save(course);tx.commit();
3、级联保存
Session session=HibernateUtil.getSessionFactory().getCurrentSession();Transaction tx=session.beginTransaction();Student student=new Student();student.setName("好学生");student.setNumber("2013115204");student.setSex("男");Course course=new Course();course.setCoursename("java语言");student.getCourses().add(course);session.save(student);tx.commit();Student.hbm.xml中set增加cascade="save-update"
4、级联删除
Session session=HibernateUtil.getSessionFactory().getCurrentSession();Transaction tx=session.beginTransaction();Student student=(Student)session.load(Student.class,"2013115214");session.delete(student);tx.commit();
Student.hbm.xml中set增加cascade="delete"
PS: cascade取多个值,cascade="delete,save-update"中间用逗号隔开
0 0
- Hibernate一对多关系映射及各种操作
- Hibernate 一对多关系映射
- hibernate一对多关系映射
- Hibernate一对多关系映射
- Hibernate映射一对多关系
- Hibernate一对多关系映射
- Hibernate关系映射一对多
- hibernate一对多关系映射
- Hibernate中一对多的映射关系
- hibernate 一对多关系映射 笔记
- Hibernate 映射一对多关联关系
- hibernate一对多关系映射(自身关联)
- hibernate之映射关系一对多
- hibernate 一对多 关系关联映射
- hibernate中一对多关系的映射
- hibernate映射一对多双向关联关系
- Hibernate映射一对多关系【inverse】
- hibernate的映射:一对多关联关系
- exit(0)和exit(1)区别
- DirectX修复工具全部文件修复失败或下载失败的解决方法
- 冒泡排序和他的优化
- 使用jsp的forward指令进行页面跳转时注意session对象的清除
- 走在Android的路上其一
- Hibernate一对多关系映射及各种操作
- poj 2528 离散化+线段树
- IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2) B. Bear and Compressing 暴力
- 3813: 奇数国|树状数组|欧拉函数
- caffe入门学习:caffe.Classifier的使用
- Ext小技巧:Ext.encode和Ext.urlEncode的使用场景
- 【类型转换】list集合之再认识
- 动态设置UITableView的cell高度(old)
- TCP:状态控制码