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
原创粉丝点击