- 浏览: 661427 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (141)
- java (58)
- SQL (7)
- java开源 (2)
- javascript (3)
- struts2 (2)
- oracle (6)
- junit (1)
- js报表 (1)
- jQuery (5)
- 插件安装 (1)
- myeclipse (1)
- xfire (1)
- weblogic (1)
- hibernate (6)
- loading (1)
- jbpm (3)
- 物语 (0)
- android (14)
- spring (20)
- BigDecimal (1)
- view (1)
- 总结 (2)
- application (1)
- Netty (5)
- aop (1)
- redis (7)
- double (1)
- restful (1)
- cache (3)
- profile (1)
- redisTemplate (1)
- poi (3)
- excel导出 (1)
- mysql (7)
- group (4)
- replication (4)
- proxysql (1)
- windows (1)
- version (1)
- mongodb (2)
- RocketMQ (1)
- MQ (1)
- RSA (1)
- 日志 (2)
- ip (1)
- socket (1)
- hibernate-validator (1)
- delayQueue (1)
- spring-retry (1)
- rabbitmq (3)
- httpclient (1)
- tools (1)
- 增量发布 (1)
- web (3)
- spring-boot (5)
- druid (2)
- pageHelper (1)
- freemarker (1)
- RequestMapping (1)
- 性能优化 (2)
- springBoot (1)
- docker (2)
- 安全 (0)
- 国际化 (3)
- websocket (1)
- stomp (1)
- shiro (1)
- 网络安全 (2)
- 锁 (1)
- logback (1)
最新评论
-
changerzhuo_319:
谢谢大佬, 查了一天了没解决
Spring-boot构建多模块依赖工程时,maven打包异常:程序包xxx不存在 -
迪伦少校:
spring越来越优秀的同时,也越来越复杂
spring核心技术(1) -
hbxflihua:
ivi13 写道这种方式会有个问题,假如有个商户的交易量特别大 ...
使用spring-retry实现支付系统异步通知 -
ivi13:
这种方式会有个问题,假如有个商户的交易量特别大,通知全部失败, ...
使用spring-retry实现支付系统异步通知 -
ckxlnd:
挺好的 有借鉴意义
重写DispatcherServlet获取springmvc 所有RequestMapping的url
在查询A表时关联了B表、C表,C表和A表是多对一的关系,B和C一对一的关系。我将三张表的数据整合在一起做成一个视图。hibernate多表查询中单表的同一条记录内存共享,对于有多条C表记录与A表对应时,Hibernate不会对A表进行重复查询,与之关联的C表的多条记录也不会继续查询,而仅仅是复制之前C的对象。这不是我想要的结果。
Hibernate管理的表原则上需要有主键,Hibernate对数据的所有操作大都以这个主键为准。主键有一般主键和组合主键两种。以上的三张表各有各的主键,C表和A表是多对一的关系。如果以C表的主键为视图的主键则不会出现上述问题,当以A表的主键为视图中的主键时,由于结果集中A表的主键有重复,Hibernate根据缓存机制进行了不再重复检索的优化。这种优化在此时来说无疑是画蛇添足的。
那么如何避免这种问题呢?下面给出两种解决方案。
方案一:临时构建一个唯一主键,该主键只用于取消Hibernate的重复对象不检索的功能。这种方案具有通用性。不管你的组合查询中有多少张表,设立一个临时唯一主键,就可以得到你想要的结果。这里我们将uuid设置为主键,原来的主键改为一个普通的属性。
select sys_guid() as uuid, t.* from ( select distinct a.*,b.is_complated from A a , C c,B b where a.aid=c.aid and c.cid=b.cid )t;
方案二:如上述问题,这里C和A有着多对一的关联关系。C中有着A的外键,通过C可以查询所有A表中的内容。这时可以将C表的主键设为视图中的主键。推而广之,如果你想通过组合查询查询更多多张表中的记录返回在一个结果集中,建议选择一个可以唯一标示其中每条记录的列作为主键,或者通过创建组合主键的方式来达到想要的结果。但这种方式有时存在局限性,考虑不周还是很容易再次出现上述问题。
发表评论
-
Spring Gateway 接口返回值脱敏
2023-10-20 09:55 1609package com.huatech.gateway.f ... -
logback 常用配置及说明
2020-05-28 15:41 498<?xml version="1.0& ... -
springboot中增强druid实现数据库账号密码加解密
2020-03-11 13:31 1290针对目前越来越严的安全等级要求,我们在做产品 ... -
java常用命令
2020-01-14 13:25 739# 1、查询java进程id jps -v ... -
poi excel导入工具类
2019-11-20 14:00 502poi excel导入工具类ImportUtil i ... -
通过spring-context创建可执行jar
2019-04-23 13:52 8961、新建一个maven工程; 2、pom.xml中 ... -
什么情况下Java程序会产生死锁?如何定位和修复死锁
2019-04-18 20:38 1237死锁是一种特定的程序状态,在实体之间,由于循环依赖导致彼此 ... -
反射机制和动态代理的原理
2019-04-13 14:02 1910反射机制是Java语言提供的一种基础功能,赋予程序在运行时 ... -
String、StringBuffer、StringBuilder的区别?
2019-04-13 10:00 664Java的基本类型有八种 ... -
强引用、软引用、弱引用、幻象引用有什么区别?具体使用场景是什么?
2019-04-12 15:10 676在 Java 语言中,除了原始数据类型的变量,其他 ... -
Exception与Error的区别?
2019-04-11 09:25 496Java语言在设计之初就 ... -
应用国际化(3)
2018-12-27 21:13 728前两篇介绍了应用国际化的注意事项和提示语国际化的简单实现。后 ... -
应用国际化(2)
2018-12-26 20:39 695上一篇介绍了应用国际化需要考虑的问题,本篇介绍后端如何实现 ... -
应用国际化(1)
2018-12-26 20:08 751最近在做数字资产交 ... -
性能优化实战-2
2018-09-28 10:15 1054我们在做架构设计的时候,会提到几个关键词:高性能、高 ... -
性能优化实战-1
2018-09-27 20:04 1005系统优化大致可以分 ... -
rabbitmq批量处理
2018-04-08 17:35 9185我们通过spring-amqp操作rabbitmq是极其简 ... -
java进程CPU过高问题定位
2018-03-14 09:06 22241、top命令查看过高CPU的pid,命令:top ... -
spring-boot集成RabbitMQ
2018-01-16 16:38 1238RabbitMQ的安装不在此赘述,想了解的可以参考: ... -
重写DispatcherServlet获取springmvc 所有RequestMapping的url
2018-01-09 10:41 28291、重写DispatcherServlet i ...
相关推荐
网页中单表格支持横纵表头锁定,网页中单表格支持横纵表头锁定
Java多线程编程环境中单例模式的实现
10.ESQL/C中单记录的检索和查询
九九乘法表,使用MFC中单文档界面设计的一个显示9乘9的乘法表,点击可直接运行
里面有单表的增删改查,多表级联的增删改查的操作,还囊括了我们常用的单选按钮,下拉列表,复选框的使用。对于初学者是个很不错的帮助工具,且分数也很低。
py源码实例自动办公excel处理实例(单工作簿拆分到多工作簿中(单表中))提取方式是百度网盘分享地址
而采用非绑定方式时许多程序员大都忽略了对单引号的特殊处理,一旦SQL语句的查询条件的变量有单引号出现,数据库引擎就会报错指出SQL语法不对,本文为大家介绍两种可以解决和处理这种单引号的问题的方法(以VB为例子...
一个关于MFC中单文档与多文档的区别及使用简要概括~
行业文档-设计装置-一种在BS系统中单纸币钞箱交易处理方法.zip
JSP开发之hibernate之单向多对一关联的实例 一对多的基础上来测试单向多对一的关联 hibernate多对一的关联关系定义: 和单向一对多不同的是:一对多是在意的一方的一方定义set集合,在映射文件中 :单向多...
Excel中单选钮的应用——制作单选题.pdf 学习资料 复习资料 教学资源
本文主要讲了一下关于altium中单个元器件的安全间距设置,一起来学习一下
标准化和自动化SPM12中单回波(SE fMRI)、多回波(ME fMRI)fMRI和VBM数据的处理matlab代码.zip
VC中关于单文档中静态分隔条的实现,实现了多个视图分隔功能.......
mysql全备之后,如果进行单表恢复,还要写sed对全备sql进行单表结构和数据进行筛选,紧急情况下,难免耗时耗力,特别是对sed工具不是很熟的情况,所以本人写了此脚本,亲测可用,分享给需要的人参考
链表的基本操作插入查询删除 算法思想: 先初始化单链表,然后建立单链表。 建立输出函数,用于输出链表中各个元素的值 建立查找函数,用于查找链表中是否有这个元素 建立插入函数,用于在链表中有序地插入输入的一...
工程目录中还附上了一个名为《配套文档-VC单个键盘按键的响应.pdf》的文档,对VC++中单个键盘按键的响应进行详细的说明,其中包含了作者为你精心准备的每个键盘按键对应的十进制ASCII码值表,以方便你使用时直接查阅...
对于以周期性势运动的超相对论粒子,发现了狄拉克方程的近似解,该势仅依赖于一个坐标,该坐标垂直于入射粒子动量的最大分量。 例如,我们采用这些解决方案来计算在硅的(110)平面之间发现的平面电势中捕获的正电子...
HPLC-CAD法同时测定白及中单糖、双糖的含量.pdf
两级供应链中单周期多产品的Stackberg博弈模型,阮本超,景海芳,在单周期多产品的生产商——零售商的供应链中,需求的不确定性会对供应链双方的决策产生重大影响。本文在生产商向零售商供应多种