hibernate学习笔记11
来源:互联网 发布:高清网络电视apk 编辑:程序博客网 时间:2024/04/28 01:37
多对多
单向关联
@Entity
public class Student {
private int id;
private String name;
@Id
@GeneratedValue
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
或xml
<hibernate-mapping>
<class name="com.bjsxt.hibernate.Student">
<id name="id">
<generator class="native"></generator>
</id>
<property name="name"></property>
</class>
</hibernate-mapping>
@Entity
public class Teacher {
private int id;
private String name;
private Set<Student> students = new HashSet<Student>();
@Id
@GeneratedValue
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@ManyToMany//多对多关联 Teacher是主的一方 Student是附属的一方
@JoinTable(name="t_s",
joinColumns={@JoinColumn(name="teacher_id")}, //本类主键在中间表生成的对应字段名
inverseJoinColumns={@JoinColumn(name="student_id")} //对方类主键在中间表生成的对应字段名
)
public Set<Student> getStudents() {
return students;
}
public void setStudents(Set<Student> students) {
this.students = students;
}
}
或xml
<hibernate-mapping>
<class name="com.bjsxt.hibernate.Teacher">
<id name="id">
<generator class="native"></generator>
</id>
<property name="name"></property>
<set name="students" table="t_s">table定义中间表的表名
<key column="teacher_id"></key>
<many-to-many class="com.bjsxt.hibernate.Student" column="student_id"/>
</set>
</class>
</hibernate-mapping>
中间表
Student s=new Student();
s.setName("s");
Student s2=new Student();
s2.setName("s2");
Teacher t=new Teacher();
t.setName("t");
Set<Student> ss=new HashSet<Student>();
ss.add(s);
ss.add(s2);
t.setStudents(ss);
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
session.save(s);
session.save(s2);
session.save(t);
session.getTransaction().commit();
Hibernate: insert into Student (name) values (?)
Hibernate: insert into Student (name) values (?)
Hibernate: insert into Teacher (name) values (?)
Hibernate: insert into t_s (teacher_id, student_id) values (?, ?)
Hibernate: insert into t_s (teacher_id, student_id) values (?, ?)
- hibernate学习笔记11
- 【Hibernate学习笔记】hibernate入门
- Hibernate学习笔记:初识Hibernate
- Hibernate Synchronizer 学习笔记
- hibernate学习笔记1
- Hibernate 学习笔记
- Hibernate学习笔记
- Hibernate 学习笔记
- Hibernate 实例学习笔记
- Hibernate学习笔记(1)
- hibernate学习笔记
- Hibernate学习笔记(一)
- Hibernate学习笔记
- Hibernate学习笔记!- -
- Hibernate学习笔记(一)
- Hibernate学习笔记
- Hibernate 学习笔记
- Hibernate Synchronizer 学习笔记
- java内部类的作用分析
- JexcelApi和POI导入Excel日期识别成数字的解决方案
- 斐波那契数列算法分析[转载]
- 如何优化JavaScript脚本的性能
- oracle 11g告警日志存放路径
- hibernate学习笔记11
- JVM工作原理和特点
- 分布式日志收集系统
- Chrome无法安装脚本解决方法
- java异常处理的陋习展播
- Nginx Upstream Keepalive 分析
- 关于const 的小问题
- IPv6 地址
- iOS内存警告