hibernate 级联操作
发布日期:2022-02-25 01:17:44
浏览次数:67
分类:技术文章
本文共 4776 字,大约阅读时间需要 15 分钟。
Customer.class
package com.an.entity;import lombok.Getter;import lombok.Setter;import java.util.HashSet;import java.util.Set;/** * @Author: WCY * @Date: 2019/8/27 16:55 */@Setter@Getterpublic class Customer { //客户id private Integer cid; //客户名称 private String custName; //客户级别 private String custLevel; //客户来源 private String custSource; //联系电话 private String custPhone; //手机 private String custMobile; //在客户实体类中里面表示多个联系人,一个客户对应多个联系人 //hibernate要求使用集合表示多的数据,使用set集合 private SetlinkManSet = new HashSet ();}
LinkMan.class
package com.an.entity;import lombok.Data;/** * @Author: WCY * @Date: 2019/8/27 16:56 */@Datapublic class LinkMan { //联系人编号 private Integer lkm_id; //联系人姓名 private String lkm_name; //联系人性别 private String lkm_gender; //联系人办公电话 private String lkm_phone; //在联系人实体类中表示所属客户,一个联系人只能属于一个客户 private Customer customer;}
特别注意: 两个实体类中,最多只能有一个实体类包括对方的元素这里就是customer的toString有List<LinkMan>对象,LinkMan中的toString不能有Customer对象,否则导致堆栈溢出
Customer.hbm.xml
hibernate核心配置文件
com.mysql.jdbc.Driver jdbc:mysql:///hibernate root root true true update org.hibernate.dialect.MySQLDialect thread
测试类
import com.an.entity.Customer;import com.an.entity.LinkMan;import com.an.toolkit.HibernateUtil;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.junit.Test;/** * @Author: WCY * @Date: 2019/8/27 17:48 */public class HibernateOneToMany { //一对多的级联保存 @Test public void addDemo(){ SessionFactory sessionFactory = null; Session session = null; Transaction tx = null; try { sessionFactory = HibernateUtil.getSessionFactory(); session = sessionFactory.openSession(); //开启事务 tx = session.beginTransaction(); //添加一个客户,为这个客户添加一个联系人 //1 创建联系人和客户对象 Customer customer = new Customer(); customer.setCustName("传智播客"); customer.setCustLevel("vip"); customer.setCustSource("网络"); customer.setCustPhone("110"); customer.setCustMobile("999"); LinkMan linkMan = new LinkMan(); linkMan.setLkm_name("lucy"); linkMan.setLkm_gender("男"); linkMan.setLkm_phone("911"); //2 把联系人放到客户set集合里面 customer.getLinkManSet().add(linkMan); //3 保存客户 session.save(customer); //提交事务 tx.commit(); }catch (Exception e){ e.printStackTrace(); tx.rollback(); }finally { session.close(); sessionFactory.close(); } } //一对多的级联保存(简化版),使用前必须在一方(Customer.hbm.xml)中set标签里配置cascade="save-update" @Test public void sampleAddDemo(){ SessionFactory sessionFactory = null; Session session = null; Transaction tx = null; try { sessionFactory = HibernateUtil.getSessionFactory(); session = sessionFactory.openSession(); //开启事务 tx = session.beginTransaction(); //添加一个客户,为这个客户添加一个联系人 //1 创建联系人和客户对象 Customer customer = new Customer(); customer.setCustName("百度"); customer.setCustLevel("普通客户"); customer.setCustSource("网络"); customer.setCustPhone("110"); customer.setCustMobile("999"); LinkMan linkMan = new LinkMan(); linkMan.setLkm_name("小红包"); linkMan.setLkm_gender("男"); linkMan.setLkm_phone("911"); //2.1把联系人放到客户对象的set集合里面 customer.getLinkManSet().add(linkMan); //3 保存到数据库中 session.save(customer); //提交事务 tx.commit(); }catch (Exception e){ e.printStackTrace(); tx.rollback(); }finally { session.close(); sessionFactory.close(); } }}
转载地址:https://blog.csdn.net/qq_37746647/article/details/100106545 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年04月12日 18时03分38秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【redis6.0.6】redis源码慢慢学,慢慢看 -- 第五天:adlist
2019-04-27
别抖,OK? 操作系统抖动现象、网络抖动与延迟、函数抖动之防抖与节流,串讲
2019-04-27
通过域名获取主机IP -- struct addrinfo
2019-04-27
【C++】算法集锦(8):从两数和问题拓展到一百数和问题
2019-04-27
【C++】算法集锦(9):背包问题
2019-04-27
【C++】算法集锦(10)通俗讲kmp算法
2019-04-27
【C++】算法集锦(12):高楼扔鸡蛋
2019-04-27
【图解】拥塞控制
2019-04-27
线程上下文切换
2019-04-27
什么是服务熔断?
2019-04-27
服务器压力过大?CPU打满?我来帮你快速检查Linux服务器性能
2019-04-27
C++面经总结之《Effective C++》(一)
2019-04-27
C++面经总结之《Effective C++》(二)
2019-04-27
这是什么“虎狼之词”啊!!!程序员的健康问题,看一线老中医怎么说!!!
2019-04-27
打开我的收藏夹 -- Python数据分析杂谈
2019-04-27
上手Pandas,带你玩转数据(1)-- 实例详解pandas数据结构
2019-04-27
上手Pandas,带你玩转数据(2)-- 使用pandas从多种文件中读取数据
2019-04-27
上手Pandas,带你玩转数据(3)-- pandas数据存入文件
2019-04-27
爬虫遇上不让右击、不让F12的网站,该怎么办?
2019-04-27