Hibernate 双向ManyToMany 究极解决 新增-删除-修改-查询(2)

本文主要是介绍Hibernate 双向ManyToMany 究极解决 新增-删除-修改-查询(2),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

DAO设计:

已经设计好数据实体以及关联关系了,接下来DAO层的编码,这部分没什么东西,可以直接无视

HibernateUtil:

package org.taomujian.db;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;public class HibernateUtil {private static final SessionFactory sessionFactory = buildSessionFactory();private static SessionFactory buildSessionFactory() {try {// Create the SessionFactory from hibernate.cfg.xmlreturn new Configuration().configure().buildSessionFactory();}catch (Throwable ex) {// Make sure you log the exception, as it might be swallowedSystem.err.println("Initial SessionFactory creation failed." + ex);throw new ExceptionInInitializerError(ex);}}public static SessionFactory getSessionFactory() {return sessionFactory;}}

 OrgDAO:

package org.taomujian.dao;import org.hibernate.Session;
import org.taomujian.db.HibernateUtil;
import org.taomujian.model.Org;public class OrgDAO{public void saveOrg(Org org){if(null==org)	return ;Session session = HibernateUtil.getSessionFactory().getCurrentSession();session.beginTransaction();session.persist(org);session.getTransaction().commit();}public void delOrg(Org org){Session session = HibernateUtil.getSessionFactory().getCurrentSession();session.beginTransaction();session.delete(org);session.getTransaction().commit();}public void mergeOrg(Org org){if(null==org)	return ;Session session = HibernateUtil.getSessionFactory().getCurrentSession();session.beginTransaction();session.merge(org);session.getTransaction().commit();}public Org getOrg(String id){Session session = HibernateUtil.getSessionFactory().getCurrentSession();session.beginTransaction();Org org = (Org)session.get(Org.class, id);session.getTransaction().commit();return org;}
}

 RoleDAO:

 

package org.taomujian.dao;import org.hibernate.Session;
import org.taomujian.db.HibernateUtil;
import org.taomujian.model.Role;public class RoleDAO {/*** 保存role记录,可以只单独保存role,也可以完整的保存role以及org和级联关系* * @param role*/public void saveRole(Role role){if(null==role)	return ;Session session = HibernateUtil.getSessionFactory().getCurrentSession();session.beginTransaction();session.persist(role);session.getTransaction().commit();}public void mergeRole(Role role){if(null==role)	return ;Session session = HibernateUtil.getSessionFactory().getCurrentSession();session.beginTransaction();session.merge(role);session.getTransaction().commit();}/*** 根据角色的ID获取一条role数据* @param id* @return*/public Role getRole(String id){Session session = HibernateUtil.getSessionFactory().getCurrentSession();session.beginTransaction();Role role = (Role)session.get(Role.class, id);System.out.println(role.getOrgList());session.getTransaction().commit();return role;}/*** 删除角色:* @param id*/public void removeRole(Role role){Session session = HibernateUtil.getSessionFactory().getCurrentSession();  session.beginTransaction();   session.delete(role);session.getTransaction().commit();     }}

 

这篇关于Hibernate 双向ManyToMany 究极解决 新增-删除-修改-查询(2)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/819163

相关文章

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

mysql表操作与查询功能详解

《mysql表操作与查询功能详解》本文系统讲解MySQL表操作与查询,涵盖创建、修改、复制表语法,基本查询结构及WHERE、GROUPBY等子句,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随... 目录01.表的操作1.1表操作概览1.2创建表1.3修改表1.4复制表02.基本查询操作2.1 SE

Redis出现中文乱码的问题及解决

《Redis出现中文乱码的问题及解决》:本文主要介绍Redis出现中文乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 问题的产生2China编程. 问题的解决redihttp://www.chinasem.cns数据进制问题的解决中文乱码问题解决总结

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

python删除xml中的w:ascii属性的步骤

《python删除xml中的w:ascii属性的步骤》使用xml.etree.ElementTree删除WordXML中w:ascii属性,需注册命名空间并定位rFonts元素,通过del操作删除属... 可以使用python的XML.etree.ElementTree模块通过以下步骤删除XML中的w:as

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN

Python中Tensorflow无法调用GPU问题的解决方法

《Python中Tensorflow无法调用GPU问题的解决方法》文章详解如何解决TensorFlow在Windows无法识别GPU的问题,需降级至2.10版本,安装匹配CUDA11.2和cuDNN... 当用以下代码查看GPU数量时,gpuspython返回的是一个空列表,说明tensorflow没有找到

Navicat数据表的数据添加,删除及使用sql完成数据的添加过程

《Navicat数据表的数据添加,删除及使用sql完成数据的添加过程》:本文主要介绍Navicat数据表的数据添加,删除及使用sql完成数据的添加过程,具有很好的参考价值,希望对大家有所帮助,如有... 目录Navicat数据表数据添加,删除及使用sql完成数据添加选中操作的表则出现如下界面,查看左下角从左

解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题

《解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题》:本文主要介绍解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4... 目录未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘打开pom.XM

XML重复查询一条Sql语句的解决方法

《XML重复查询一条Sql语句的解决方法》文章分析了XML重复查询与日志失效问题,指出因DTO缺少@Data注解导致日志无法格式化、空指针风险及参数穿透,进而引发性能灾难,解决方案为在Controll... 目录一、核心问题:从SQL重复执行到日志失效二、根因剖析:DTO断裂引发的级联故障三、解决方案:修复