Hibernate多对多
来源:互联网 发布:网络爬虫 编辑:程序博客网 时间:2024/04/30 23:53
多对多
案列 学生选课
domain
package com.hsp.domain;import java.util.Set;public class Student { private Integer id; private String name; private Set<StuCourse> stuCourses; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Set<StuCourse> getStuCourses() { return stuCourses; } public void setStuCourses(Set<StuCourse> stuCourses) { this.stuCourses = stuCourses; }}
package com.hsp.domain;import java.util.Set;public class Course { private Integer id; private String name; private Set<StuCourse> stuCourses; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Set<StuCourse> getStuCourses() { return stuCourses; } public void setStuCourses(Set<StuCourse> stuCourses) { this.stuCourses = stuCourses; }}
第三方表
package com.hsp.domain;public class StuCourse { private Integer id; private Student student; private Course course; private Integer grade; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Student getStudent() { return student; } public void setStudent(Student student) { this.student = student; } public Course getCourse() { return course; } public void setCourse(Course course) { this.course = course; } public Integer getGrade() { return grade; } public void setGrade(Integer grade) { this.grade = grade; }}
配置文件
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.hsp.domain"><class name="Student"><id name="id" type="java.lang.Integer"><generator class="sequence"><param name="sequence">stu_seq</param></generator></id><property name="name" type="java.lang.String"><column name="name" length="64"/></property><!-- 这里我们配置了one-to-many 一个学生可以对应多个选课记录 --><set name="stuCourses"><key column="student_id"/><one-to-many class="StuCourse"/></set></class></hibernate-mapping>
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.hsp.domain"><class name="Course"><id name="id" type="java.lang.Integer"><generator class="sequence"><param name="sequence">course_seq</param></generator></id><property name="name" type="java.lang.String"><column name="name" length="64"/></property><!-- 配置one-to-many 表示一门课程可以对应多个选课记录 --><set name="stuCourses"><key column="course_id"/><one-to-many class="StuCourse"/></set></class></hibernate-mapping>
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.hsp.domain"><class name="StuCourse" ><id name="id" type="java.lang.Integer"><generator class="sequence"><param name="sequence">stucourse_seq</param></generator></id><property name="grade" type="java.lang.Integer"><column name="grade" length="3"/></property><many-to-one name="course" column="course_id"/><many-to-one name="student" column="student_id"/></class></hibernate-mapping>
测试
package com.hsp.view;import java.util.Date;import java.util.HashSet;import java.util.Set;import org.hibernate.Hibernate;import org.hibernate.Session;import org.hibernate.Transaction;import com.hsp.domain.Course;import com.hsp.domain.StuCourse;import com.hsp.domain.Student;import com.hsp.util.HibernateUtil;public class TestMain { /** * @param args */ public static void main(String[] args) { //添加一组Person/idcard Session s=null; Transaction tx=null; try { //我们使用基础模板来讲解. s=HibernateUtil.getCurrentSession(); tx=s.beginTransaction(); //添加一个学生,一门课程,选课 Student stu1=new Student(); stu1.setName("小明"); Course course=new Course(); course.setName("java"); StuCourse sc=new StuCourse(); sc.setCourse(course); sc.setStudent(stu1); //顺序保存. s.save(stu1); s.save(course); s.save(sc); tx.commit(); } catch (Exception e) { e.printStackTrace(); if(tx!=null){ tx.rollback(); } }finally{ if(s!=null && s.isOpen()){ s.close(); } } } }
0 0
- hibernate多对多
- hibernate多对多
- Hibernate多对多
- hibernate 多对多
- Hibernate多对多
- hibernate 多对多
- Hibernate多对多
- hibernate多对多
- Hibernate多对多
- hibernate 多对多
- Hibernate 多对多
- hibernate 多对多
- hibernate 多对多
- Hibernate多对多
- hibernate多对多
- Hibernate多对多
- hibernate多对多
- Hibernate--多对多
- Leetcode 404(Java)
- 性能分析之IO分析-jbd2引起的IO高
- Python 小案例 打字练习
- [Leetcode] 147. Insertion Sort List 解题报告
- IP地址最后一位斜杠是什么意思?比如192.168.1.10/27?还有IP地址和子网掩码相加得到的网络地址是什么意思
- Hibernate多对多
- 需求变更,产品经理的良心也会痛!
- BZOJ 3831: [Poi2014]Little Bird
- 十分钟入门Matplotlib
- HCA卡的MTU仅仅对IPOIB有效,对RDMA没有速度提升.
- 一段ping延迟监控引发的调查
- Java.Util.concurrent包学习
- oracle 12c 列式存储 ( In Memory 理论)
- 跨域资源共享 CORS 详解