多对一含义:会在多的一端加个外键指向一的一方,外键Id是由<many-to-one> 属性中的columu定义,忽略默认是实体名字一致
基础配置:
<many-to-one name="dept" class="org.ymm.entity.Dept" cascade="save-update" >
<column name="DEPTNO" precision="2" scale="0" />
</many-to-one>
| 1 |
|
| 2 |
|
| 3 |
|
| 4 |
|
| 5 |
|
| 6 |
|
| 7 |
|
| 8 |
|
| 9 |
|
| 10 |
|
| 11 |
|
| 12 |
|
| 13 |
|
| 14 |
|
| 15 |
|
理解级联(cascade):all,save-update,persist,delete,lock,delete
连锁操作 (对增删改 起作用)
dept和emp表测试
package org.ymm.test;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;
import org.ymm.entity.Dept;
import org.ymm.entity.Emp;
public class Test {
// public static void main(String[] args) {
// Configuration configur=new Configuration().configure();
// SessionFactory sf=configur.buildSessionFactory();
// Session session =sf.openSession();
// Transaction t=session.beginTransaction();
//
// //多对一查询
// Emp e=(Emp) session.get(Emp.class, 7369);
// System.out.println(e.getDept().getDname());
//
// t.commit();
// session.close();
// }
// public static void main(String[] args) {
// Configuration configur=new Configuration().configure();
// SessionFactory sf=configur.buildSessionFactory();
// Session session =sf.openSession();
// Transaction t=session.beginTransaction();
//
// Dept d=new Dept();
// d.setDeptno(12);
// d.setDname("xx");
// //一的这边必须是持久状态 可以用cascade属性先保存,也可以自己用session保存
// //session.save(d);
//
// Emp e =new Emp();
// e.setEmpno(12);
// e.setEname("xxmm");
// e.setDept(d);
//
// session.save(e);
//
// t.commit();
// session.close();
// }
public static void main(String[] args) {
Configuration configur = new Configuration().configure();
SessionFactory sf = configur.buildSessionFactory();
Session session = sf.openSession();
Transaction t = session.beginTransaction();
Dept d = (Dept) session.load(Dept.class, 11);
// 一的这边必须是持久状态 可以用cascade属性先保存,也可以自己用session保存
// session.save(d);
Emp e = new Emp();
e.setEmpno(11);
e.setEname("xx11");
e.setDept(d);
session.saveOrUpdate(e);
t.commit();
session.close();
}
}
本文深入解析了多对一关系映射的基本概念、配置方式及其在实际应用中的实现步骤,包括级联操作、基础配置、查询与更新操作等关键点。通过示例代码展示了如何在实体间建立多对一关系,并演示了如何利用Hibernate框架进行持久化操作。
1123

被折叠的 条评论
为什么被折叠?



