java多对多关联数据操作,hibernate实施多对多关联查询时,关联表数据被删除
hibernate执行多对多关联查询时,关联表数据被删除
本帖最后由 binbb521 于 2012-12-04 11:48:29 编辑
S2SH框架开发的网站,执行两个多对多关系的表查询时,关联两个表的中间表数据被删除,麻烦各位大牛看一下,很急,解决立马结贴,谢谢了!
ZqAdminPermission.hbm.xml
ZqAdminModules.hbm.xml
根据ID查询ZqAdminPermission表中的数据时,应自动将关联的ZqAdminModules数据查出,结果这两个表的关联表的数据自动被删除了,导致查询得到了空集合
public ZqAdminPermission findById(final String id) {
ZqAdminPermission zqAdminPermission = getHibernateTemplate().execute(new HibernateCallback() {
public ZqAdminPermission doInHibernate(Session session) throws HibernateException,SQLException {
String hql = "from ZqAdminPermission zap where zap.adminPermissionId=:id";
Query query = session.createQuery(hql);
query.setString("id", id);
List list = query.list();
if(list.size()==0) return null;
return (ZqAdminPermission)list.get(0);
}
});
return zqAdminPermission;
}
------解决方案--------------------
楼主为何要用hibernateCallBack
直接用getHibernateTemplate().find(String query,Object... values)
------解决方案--------------------
------解决方案--------------------
ZqAdminPermission zqAdminPermission = getHibernateTemplate().execute(new HibernateCallback() {
这个
HibernateTemplate执行execute(new HibernateCallback())方法,从HibernateCallback中得到session,在此session中做多个操作,并希望这些操作位于同一个事务中。
回调实际就是一种事件触发模式,就象连环地雷一样,一旦触发一个,这个再触发另外一个,你在find这个方法被执行时,希望同时执行其他方法,就需要回调。
楼主不需要执行多个方法就不用加这个回调的东西了吧!
------解决方案--------------------
引用:新建的类库,还没写删除的方法,目前只是刚要读取一个列表数据,设计的时候是多对多的
楼主,把hibernate的配置信息发上来。
hibernate.cfg.xml
其中有项:
update
你可能设置成:
delete
java多对多关联数据操作,hibernate实施多对多关联查询时,关联表数据被删除相关推荐
- 数据操作日志记录表设计、可以查询、恢复历史数据记录
数据操作日志记录表设计.可以查询.恢复历史数据记录 摘要:在日常开发中,我们经常会遇到这样的需求,产品希望用户对业务系统的所有操作都做日志记录,尤其是涉及到修改.删除的时候,更应该,因为用户在操作系统 ...
- mysql数据意外删了怎么办_MySQL数据库意外崩溃导致表数据文件损坏无法启动怎么办...
MySQL数据库意外崩溃导致表数据文件损坏无法启动怎么办 发布时间:2020-07-20 13:45:46 来源:亿速云 阅读:57 作者:小猪 这篇文章主要为大家展示了MySQL数据库意外崩溃导致表 ...
- mysql修改的值子查询语句_MySQL的SQL语句 - 数据操作语句(13)- 子查询(13)
子查询的限制 ● 通常,不能在子查询中修改表并从同一表中进行选择.例如,此限制适用于以下形式的语法: 1. DELETE FROM t WHERE ... (SELECT ... FROM t ... ...
- mysql数据库实验查询_MySQL数据库表数据的查询操作实验
实验3.MySQL数据库表数据的查询操作实验(1) 一.实验目的 掌握SELECT 语句的基本语法格式. 掌握SELECT 语句的执行方法. 掌握SELECT 语句的 GROUP BY 和 ORDER ...
- Hibernate使用createSqlQuery进行模糊查询时找不到数据
1. 首先明确一点,使用createSqlQuery如下两种方式的占位符都可以使用,这个在官方的文档可以查到. 注意使用模糊查询时,赋值两边不可以添加单引号. Query query = sess.c ...
- SELECT高级查询——连接查询、子查询(多表数据查询)
在实际中,经常是从多张表中查询数据.本节学习多表连接查询.子查询等高级SELECT语句的应用. 1.简单连接查询 多表查询是指SELECT命令中显示的列来源于多个数据表: 连接查询将多个表以某个或某些 ...
- mysql比对表中数据是否相同_如何用sql比较两张表数据是否一致?
在批量程序的测试中,经常会涉及到对数据库表的测试,今天我们来介绍一下用sql比较两张表结构相同的表数据是否完全一致的方法. 1.inner join 浅尝 提到比对两张表的数据是否完全相同,很容易想到 ...
- mysql 查询多个记录查询_MySQL多表数据记录查询详解
在实际应用中,经常需要实现在一个查询语句中显示多张表的数据,这就是所谓的多表数据记录连接查询,简称来年将诶查询. 在具体实现连接查询操作时,首先将两个或两个以上的表按照某个条件连接起来,然后再查询到所 ...
- 增删改查操作下锁的相关情况_查询时的锁分析
此系列主要分析在增删改查操作下,表是否有索引等情况下,锁的申请使用情况,研究分析并用于语句调优,数据库优化,死锁堵塞分析等:由于时间问题,该篇只分析查询的情况,下篇继续分析 锁的种类 首先,先了解下数 ...
最新文章
- android 不固定指示器,Android简单的页面指示器
- H3C LMI协议标准
- Qt Creator在桌面上预览
- 昆西·拉森的净资产是多少?
- 受保护的属性无法直接读取
- linux消息总线日志,linux – 解密继续mpt2sas系统日志消息
- 信息学奥赛C++语言: 将字符串中的小写字母转换成大写字母
- uni map 实时记录轨迹_北斗GPS汽车行车记录仪,部标808商用轿车专用
- RSA加密、解密、签名、校验签名
- 深度学习2.0-23.Keras高层接口之模型的加载与保存
- javaWeb基于SSM框架学生信息管理系统项目完整源码附带部署教程
- 立创开源 | 基于stm32的稳定输出9v的双向DCDC自动稳压系统
- linux安装完windows字体以后 特别难看,告别 Windows 终端的难看难用,从改造 PowerShell 的外观开始...
- 485芯片RO 口收不到信号问题分析
- DELL服务器运行硬件检测
- SQL Server中默认的数据库及作用
- Vue 做调查问卷简单实例
- 苹果手机注册时显示链接服务器出现问题,苹果连接服务器出现问题怎么办_苹果id连接到服务器时出现问题的解决方法...
- IE浏览器打不开解决办法
- 怎么恢复格式化的sd卡呢?
热门文章
- php开发支持的文件类型整理
- Http://selboo.com.cn
- 入中继限呼的方法之一
- 计算机组成原理第3章-存储系统
- tcp/ip 协议栈Linux源码分析四 IPv4分片 ip_fragment函数分析
- ambari hive mysql_ambari方式安装hadoop的hive组件遇到的问题
- 信息检索报告_iFixR:缺陷报告驱动程序修复
- mysql 5.8 新特性_MySQL 5.4的新特性解析
- nexus5 刷原装android,nexus5 刷回原生系统
- flex 平铺布局_CSS3 Flex布局(伸缩布局盒模型)学习