hibernate多对多
来源:互联网 发布:淘宝主播的东西可靠吗 编辑:程序博客网 时间:2024/04/30 08:45
Student.java:
package doublemany2many;
import java.util.HashSet;
import java.util.Set;
public class Student implements java.io.Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private int sid;
private String sname;
private Set<Teacher> teachers = new HashSet<Teacher>();
public Set<Teacher> getTeachers() {
return teachers;
}
public void setTeachers(Set<Teacher> teachers) {
this.teachers = teachers;
}
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
}
-------------------------------------------------------------------------------
Teacher.java:
package doublemany2many;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Id;
import org.hibernate.annotations.Entity;
public class Teacher implements java.io.Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private int tid;
private String tname;
//一的一方写集合
private Set<Student> students = new HashSet<Student>();
public int getTid() {
return tid;
}
public void setTid(int tid) {
this.tid = tid;
}
public String getTname() {
return tname;
}
public void setTname(String tname) {
this.tname = tname;
}
public Set<Student> getStudents() {
return students;
}
public void setStudents(Set<Student> students) {
this.students = students;
}
}
---------------------------------------------------------------------------------------
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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="doublemany2many.Student" schema="NEIL">
<id name="sid" type="java.lang.Integer">
<generator class="assigned" />
</id>
<property name="sname" type="java.lang.String"/>
<!-- 加入第三方表的关联table="st",此表只要两个表的主键 -->
<set name="teachers" table="st" cascade="all" fetch="join">
<!-- key是主键,one-to-many外键的一方 -->
<key column="sid"/>
<many-to-many column="tid" class="doublemany2many.Teacher"/>
</set>
</class>
</hibernate-mapping>
------------------------------------------------------------------------------------------
Teacher.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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="doublemany2many.Teacher" schema="NEIL">
<id name="tid">
<generator class="assigned"></generator>
</id>
<property name="tname"/>
<!-- 加入第三方表的关联table="st",此表只要两个表的主键 -->
<set name="students" table="st" cascade="all" inverse="true">
<!-- key是主键,one-to-many外键的一方 -->
<key column="tid"/>
<many-to-many column="sid" class="doublemany2many.Student"/>
</set>
</class>
</hibernate-mapping>
---------------------------------------------------------------------------------------------
Test.java:
package doublemany2many;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.hibernate.Query;
import org.hibernate.Session;
public class Test {
public static void main(String[] args) {
Session session = HibernateSessionFactory.getSession();
// //添加三个学生,三个老师
// Student s1 = new Student();
// s1.setSid(1);
// s1.setSname("s1");
//
// Student s2 = new Student();
// s2.setSid(2);
// s2.setSname("s2");
//
// Student s3 = new Student();
// s3.setSid(3);
// s3.setSname("s3");
//
// Teacher t1 = new Teacher();
// t1.setTid(101);
// t1.setTname("t1");
// t1.getStudents().add(s1);//Set s = new HashSet();
// t1.getStudents().add(s2);
// t1.getStudents().add(s3);
//
// Teacher t2 = new Teacher();
// t2.setTid(102);
// t2.setTname("t2");
// t2.getStudents().add(s1);//Set s = new HashSet();
// t2.getStudents().add(s2);
// t2.getStudents().add(s3);
//
// Teacher t3 = new Teacher();
// t3.setTid(103);
// t3.setTname("t3");
// t3.getStudents().add(s1);//Set s = new HashSet();
// t3.getStudents().add(s2);
// t3.getStudents().add(s3);
//
// s1.getTeachers().add(t1);
// s1.getTeachers().add(t2);
// s1.getTeachers().add(t3);
//
// s2.getTeachers().add(t1);
// s2.getTeachers().add(t2);
// s2.getTeachers().add(t3);
//
// s3.getTeachers().add(t1);
// s3.getTeachers().add(t2);
// s3.getTeachers().add(t3);
//
// //添加学生
// session.save(s1);//测试多关联一,成功
// session.save(s2);//测试多关联一,成功
// session.save(s3);//测试多关联一,成功
// session.beginTransaction().commit();
//查询
//测试查询一的一方
Query query = session.createQuery("from doublemany2many.Teacher");
List<Teacher> teachers = query.list();
for(Teacher t:teachers){
System.out.print("老师"+t.getTname()+"交的学生是:\t");
//Set<Student> students = t.getStudents();
Iterator<Student> students = t.getStudents().iterator();
while(students.hasNext()){
Student student = students.next();
System.out.println("学生:"+student.getSname());
}
}
// Teacher t = (Teacher)session.load(Teacher.class, 101);
// System.out.println(t.getTname());
// Set<Student> students = t.getStudents();
// Iterator<Student> iterator = students.iterator();
// while(iterator.hasNext()){
// Student student = iterator.next();
// System.out.println(student.getSname());
// }
}
}
package doublemany2many;
import java.util.HashSet;
import java.util.Set;
public class Student implements java.io.Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private int sid;
private String sname;
private Set<Teacher> teachers = new HashSet<Teacher>();
public Set<Teacher> getTeachers() {
return teachers;
}
public void setTeachers(Set<Teacher> teachers) {
this.teachers = teachers;
}
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
}
-------------------------------------------------------------------------------
Teacher.java:
package doublemany2many;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Id;
import org.hibernate.annotations.Entity;
public class Teacher implements java.io.Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private int tid;
private String tname;
//一的一方写集合
private Set<Student> students = new HashSet<Student>();
public int getTid() {
return tid;
}
public void setTid(int tid) {
this.tid = tid;
}
public String getTname() {
return tname;
}
public void setTname(String tname) {
this.tname = tname;
}
public Set<Student> getStudents() {
return students;
}
public void setStudents(Set<Student> students) {
this.students = students;
}
}
---------------------------------------------------------------------------------------
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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="doublemany2many.Student" schema="NEIL">
<id name="sid" type="java.lang.Integer">
<generator class="assigned" />
</id>
<property name="sname" type="java.lang.String"/>
<!-- 加入第三方表的关联table="st",此表只要两个表的主键 -->
<set name="teachers" table="st" cascade="all" fetch="join">
<!-- key是主键,one-to-many外键的一方 -->
<key column="sid"/>
<many-to-many column="tid" class="doublemany2many.Teacher"/>
</set>
</class>
</hibernate-mapping>
------------------------------------------------------------------------------------------
Teacher.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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="doublemany2many.Teacher" schema="NEIL">
<id name="tid">
<generator class="assigned"></generator>
</id>
<property name="tname"/>
<!-- 加入第三方表的关联table="st",此表只要两个表的主键 -->
<set name="students" table="st" cascade="all" inverse="true">
<!-- key是主键,one-to-many外键的一方 -->
<key column="tid"/>
<many-to-many column="sid" class="doublemany2many.Student"/>
</set>
</class>
</hibernate-mapping>
---------------------------------------------------------------------------------------------
Test.java:
package doublemany2many;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.hibernate.Query;
import org.hibernate.Session;
public class Test {
public static void main(String[] args) {
Session session = HibernateSessionFactory.getSession();
// //添加三个学生,三个老师
// Student s1 = new Student();
// s1.setSid(1);
// s1.setSname("s1");
//
// Student s2 = new Student();
// s2.setSid(2);
// s2.setSname("s2");
//
// Student s3 = new Student();
// s3.setSid(3);
// s3.setSname("s3");
//
// Teacher t1 = new Teacher();
// t1.setTid(101);
// t1.setTname("t1");
// t1.getStudents().add(s1);//Set s = new HashSet();
// t1.getStudents().add(s2);
// t1.getStudents().add(s3);
//
// Teacher t2 = new Teacher();
// t2.setTid(102);
// t2.setTname("t2");
// t2.getStudents().add(s1);//Set s = new HashSet();
// t2.getStudents().add(s2);
// t2.getStudents().add(s3);
//
// Teacher t3 = new Teacher();
// t3.setTid(103);
// t3.setTname("t3");
// t3.getStudents().add(s1);//Set s = new HashSet();
// t3.getStudents().add(s2);
// t3.getStudents().add(s3);
//
// s1.getTeachers().add(t1);
// s1.getTeachers().add(t2);
// s1.getTeachers().add(t3);
//
// s2.getTeachers().add(t1);
// s2.getTeachers().add(t2);
// s2.getTeachers().add(t3);
//
// s3.getTeachers().add(t1);
// s3.getTeachers().add(t2);
// s3.getTeachers().add(t3);
//
// //添加学生
// session.save(s1);//测试多关联一,成功
// session.save(s2);//测试多关联一,成功
// session.save(s3);//测试多关联一,成功
// session.beginTransaction().commit();
//查询
//测试查询一的一方
Query query = session.createQuery("from doublemany2many.Teacher");
List<Teacher> teachers = query.list();
for(Teacher t:teachers){
System.out.print("老师"+t.getTname()+"交的学生是:\t");
//Set<Student> students = t.getStudents();
Iterator<Student> students = t.getStudents().iterator();
while(students.hasNext()){
Student student = students.next();
System.out.println("学生:"+student.getSname());
}
}
// Teacher t = (Teacher)session.load(Teacher.class, 101);
// System.out.println(t.getTname());
// Set<Student> students = t.getStudents();
// Iterator<Student> iterator = students.iterator();
// while(iterator.hasNext()){
// Student student = iterator.next();
// System.out.println(student.getSname());
// }
}
}
0 0
- hibernate多对多
- hibernate多对多
- Hibernate多对多
- hibernate 多对多
- Hibernate多对多
- hibernate 多对多
- Hibernate多对多
- hibernate多对多
- Hibernate多对多
- hibernate 多对多
- Hibernate 多对多
- hibernate 多对多
- hibernate 多对多
- Hibernate多对多
- hibernate多对多
- Hibernate多对多
- hibernate多对多
- Hibernate--多对多
- 行人检测论文笔记:Fast Feature Pyramids for Object Detection?
- 代理模式
- Linux进程描述符task_struct结构体详解--Linux进程的管理与调度
- hibernate零散知识点
- photoshop第十章:抠图技巧以及示例
- hibernate多对多
- jVMgc-6 吞吐量收集器
- JVM了解
- 大话数据结构读书笔记(五)-串
- set集合如何遍历
- Codeforces Round #398 (Div. 2) C. Garland 后序遍历树
- 如何用photoshop把一张图片分割成几张图片呢?
- HelloWorld
- mybatis案例