模块隔离时引发的Hibernate问题

【OOM问题】hibernate QueryPlanCache引发的heap区内存溢出 一、参考资料 hibernate QueryPlanCache引发的heap区内存溢出_人生如逆旅,我亦是行人。。。-优快云博客 记一次OOM排查解决【图文】_zhuwensheng_51CTO博客 记录一次 java内存泄漏的排查 - 我的小时代 - 博客园 二、解决办法 QueryPlanCache 内存泄漏解决方法_这就是快乐嘛-优快云博客 ... 阅读详情
单向关联与双向关联
今天设计模块化的PO之间的隔离时,犯了晕,归纳了一下。

<one-to-many>与<many-to-one>的解析
模拟1:一个父亲有很多儿子,儿子只有一个父亲。

单向关联:
如果只指定<one-to-many>,由父类管理关联关系,子类无法管理,而这时,父亲知道自己的儿子,但是,从儿子对象不知道父亲是谁。
如果只指定<many-to-one>,则子类知道自己的父亲是谁,而父亲不知道孩子在哪里。
这二者的区别不是表结构的区别,而是逻辑上的差别,体现在具体语句上的差异。
另外,这里体现了cascade存在的意义:Cascade属性是来控制进行级联操作的。比如,单向关联<one-to-many>,父亲知道自己的孩子是谁,可以进行级联操作;但子类不清楚自己的父亲是谁,所以,不能进行级联操作的。

双向关联:
子和父都设置了<many-to-one>和<one-to-many>,那么,父亲知道孩子,孩子也知道父亲,也就是2者可以互相引用。。
这里就体现了inverse的意义:关联关系的管理可以通过inverse指定。

上面这些,表结构都相同,但是具体逻辑不同。

<many-to-many>的简析:显然,这2者均是双向关联,inverse和cascade的设置确定了双方的关系。
==============================
模块隔离的问题:
两个多对多的类,分别处于2个模块(A,B)中。模块A很基础,肯定存在;但部分情况下,模块B会不存在。如何拆分?
解决方案:
他们之间的关系,就不在PO层通过Hibernate实现(因为这样他们之间就存在耦合,导致2个模块不可拆分)。事实上,应该在Service层解决。
分析与方案如下:
1,逻辑上讲:模块A不知道模块B对它的关联,但模块B必须依赖与模块A
2,创建一个新的关联PO(LinkPO),相当于many-to-many情况下,Hibernate自动创建的中间表。该PO处于可移出的模块B内,
3,模块B提供一个接口,使得模块A可以获得模块B的相关数据;
4,当发生对这2个类之间的关系进行操作时,全部操作关联PO(LinkPO)

一对多的类,分别处于2个模块(A,B)中。模块关系同上。
相对简单了,不需要另外创建新的PO,只要在依赖而不是被依赖的模块内添加<many-to-one>就OK啦。
Hibernate的QueryPlanCache引发的堆内存溢出 事情缘由 协助康美中药网排查内存溢出的问题。这个系统是基于Hibernate3开发的一个药品信息、价格变动、药品咨询新闻相关的网站,90%的操作都是查询。 问题日志 工具排查 使用Java VisualVM进行观察,发现一段时间后堆内存持续上升。 Dump堆内存文件,使用MAT进行分析 1、jsp 命令获取应用的pid jmap -dump:format=b,file=/dump.hprof pid 分析后发现: MAT中已经给出有可能出问题的代码位置。Session 阅读详情

相关推荐

多Agent编排三大核心:并行调度、视角隔离与运行时隔离

多Agent系统并非单Agent的简单复制,其本质是分布式协同工程。理解并行需超越线程并发,聚焦任务流解耦与事件驱动的状态同步;视角隔离不是UI切换,而是知识表示层的字段级访问控制与数据域边界约束;运行时隔离更不止于容器化,涵盖GPU MIG切分、语言环境独立、网络微隔离及存储ACL等四维防护。这些能力共同支撑高可靠AI服务落地——尤其在金融审批、政务协同、电商履约等强一致性与高安全要求场景中,成为从POC走向生产的关键分水岭。本文深入解析并行编排引擎、动态SQL重写、K8s精细化资源管控等可落地技术方案。

weixin_34292402的博客 373

Hibernate事务的隔离级别

一  数据库事务定义  数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性。...

Little_Oranges的博客 678

STM32F030C8烧录实战:用J-Link Commander实现一键批量烧写(附完整脚本)

本文详细介绍了如何使用J-Link Commander工具链实现STM32F030C8的一键批量烧录,包括环境配置、批处理脚本设计、命令脚本解析以及生产环境实战技巧。通过自动化烧录流程,显著提升效率并降低人为错误,特别适合量产和频繁迭代的开发场景。

weixin_30505225的博客 459

10分钟解决Hibernate的事务管理,Hibernate当中要设置事务的隔离级别

一、事务 1、什么是事务: 事务:事物指的是逻辑上的一组操作,组成这一组操作的逻辑单元要么全成功,要么全失败 2、事务的特性: (1)原子性:代表事务不可分割。 (2)一致性:代表事务执行的前后,数据的完整性要保证一直。 (3)隔离性:代表的是一个事务执行的过程当中,不应该受到其他事务的干扰。 (4)持久性:代表一个事务执行完成后数据就持久到数据库当中(提交或回滚)。 3、如果我们不考虑事务的隔离...

程序员猫爪 1489

ROS-订阅与处理激光雷达scan话题

激光雷达通常有四个性能衡量指标:测距分辨率、扫描频率(有时也用扫描周期)、角度分辨率及可视范围。测距分辨率衡量在一个给定的距离下测距的精确程度,通常与距离真实值相差在5-20mm;扫描频率衡量激光雷达完成一次完整扫描的快慢,通常在10Hz及以上;角度分辨率直接决定激光雷达一次完整扫描能返回多少个样本点;可视范围指激光雷达完整扫描的广角,可视范围之外即为盲区。

weixin_42438635的博客 4476

从零搭建ROS机械臂仿真环境:Ubuntu 20.04+Noetic下配置睿尔曼RM65的完整流程

本文详细介绍了在Ubuntu 20.04系统中,基于ROS Noetic搭建睿尔曼RM65机械臂的完整仿真环境。从环境准备、工作空间创建到MoveIt!配置与Gazebo仿真环境集成,提供了完整的流程和优化建议,帮助开发者高效实现机械臂仿真与调试。

v6b7n8m9q0的博客 933

Hibernate的事务的隔离性

事务的特性:原子性:指处于同一个事务中的多条语句是不可分割的。一致性:事务必须使数据库从一个一致性状态变换到另外一个一致性状态。隔离性:指多线程环境下,一个线程中的事务不能被其他线程中的事务打扰持久性:事务一旦提交,就应该被永久保存起来。如果不考虑事务的隔离性,会出现以下问题:脏读:指一个线程中的事务读取到了另外一个线程中未提交的数据。不可重复读(虚读):指一个线程中的事务读取到了另外一个线程中提...

琦彦 1万+

大模型时代的具身智能系列专题(二)

自由形式语言指令 L 指定了一个操作问题,例如“打开最顶部的抽屉”。然而,根据 L 生成机器人轨迹是很困难的,因为 L 可能具有任意长度,或者是不明确的(例如,需要上下文语义)。相反,我们专注于问题的各个阶段(子任务)l_i,它们明确地指定了一个操作任务 (例如,“抓住抽屉把手”,“打开抽屉”),其中被分解的子阶段(子任务)L→l1l2lnL→l1​l2​...ln​由高级规划器(例如,一个LLM或一个基于搜索的规划器)给出。

achao的专栏 2171

Hibernate 4升级到Hibernate 5遇到的两个问题

问题一 Hibernate 4构建SessionFactory的方式与Hibernate 5的构建方式不同。 如果在Hibernate 5的环境下继续使用Hibernate 4的sessionFactory创建方式,那么Configuration或者Metadata对象里面没有项目所映射的Entity,造成项目运行时报错,比如: org.hibernate.MappingException...

qq_26817225的博客 3230

AutoSAR配置视频讲解:总目录

AutoSAR实验视频讲解:闪烁一颗LED实验【总目录】 欢迎大家来到雪云飞星的《AutoSAR实验视频讲解》,本专栏是一个关于AutoSAR的闪烁LED灯的实验课程,一共8节课,每节课的视频都放在文章最后,传送门如下: 前言 AutoSAR实验视频讲解:简介 EB 的Mcal配置 AutoSAR实验视频讲解:Mcal配置 DaVinci Cfg配置 AutoSAR实验视频讲解:新建DaVinci工程 AutoSAR实验视频讲解:Os配置(预计2021-3-10更新) AutoSAR实验视频讲解:检查校验报

雪云飞星的博客 2万+

SIMULINK开发项目实例 1000 例专栏之第847例--基于飞行控制与稳定性的场景实例:多旋翼无人机在风扰动下的稳定性分析

本文介绍了使用Simulink进行多旋翼无人机风扰动稳定性分析的完整流程。首先建立包含动力学模型、控制系统和环境模拟三大模块的仿真系统,其中动力学模型基于牛顿-欧拉方程,控制系统采用PID调节器。重点展示了MATLAB函数实现的风扰动模型和姿态控制算法,通过设置输入信号和输出显示模块完成闭环仿真。最后通过多次风速条件下的仿真测试评估控制系统的抗干扰能力和稳定性表现,为无人机控制系统设计提供了有效的仿真验证方法。

xiaoheshang_123的博客 321

hibernate设置事物隔离级别

1、事物的概念 事物指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部不成功 2、事物的四大特性 (1)原子性(Atomicity) 原子性是指事务是一个不可分割的工作单位,事务中的操作要么全部成功,要么全部失败。比如在同一个事务中的SQL语句, 要么全部执行成功,要么全部执行失败。 (2)一致性(Consis...

白面小生的博客 2220

行人检测模型在海思平台上的部署:从 PyTorch 到 NNIE 深度优化与实践

摘要 本文详细介绍行人检测模型从PyTorch到海思NNIE平台的部署流程。首先分析了行人检测面临的挑战(尺度变化、遮挡、姿态多样性等)及边缘部署的优势(实时性、隐私保护等)。重点阐述了模型转换过程:PyTorch→ONNX→Caffe→NNIE-WK,其中PyTorch转ONNX需注意评估模式设置、虚拟输入匹配、操作集版本选择等关键点。文章旨在帮助开发者在海思3516D芯片上实现高效的行人检测,克服部署过程中的常见问题,最终实现边缘设备的实时目标检测能力。

FJN110的博客 215

Hibernate乐观锁引发的StaleObjectStateException分析

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34295316的博客 5105

TRAE智能体开发:TRAE概述

TRAE(/treɪ/)深度融合 AI 能力,是一名能够理解需求、调用工具并独立完成各类开发任务的“AI 开发工程师”,帮助你高效推进每一个项目。

王国平的博客 1254

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Hibernate QueryPlanCache引发的JVM内存泄漏

hibernate QueryPlanCache引发的JVM内存泄漏 一、生产环境问题现象 一个经手多人的项目,项目中用到了hibernate作为ORM框架。生产环境中会出现HeapUsage持续缓慢上升的情况,导致出现HeapUsage超过80%的告警(见图1)。 二、问题分析 生产环境dump内存快照(jmap -dump:live,format=b,file=/tmp/dump.hprof...

做一个有目标的人 2308

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Hibernate单向多对一级联删除引发的问题

Hibernate单向多对一在级联删除时,会出现一些问题。 下面模拟我遇到的问题: 这次模拟与之前的一次模拟方法一直,博客:http://blog.youkuaiyun.com/openjdk8/article/details/38424403 模拟场景:有一个部门表t_dept,职位表t_position。 需求:当删除部门表时,不管职位表有没数据,照样删除。删除职位表就直接删除。 1,建

Gaaidou的博客 7060

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Hibernate的SQL执行顺序引发的血案

因为Hibernate连表查询比较麻烦,在有些情况下一个业务方法有可能既用到了普通的hibernate查询又用到了hibernate的原生sql查询,如果没有控制好hibernate的执行顺序,有可能会导致程序逻辑错误。拿个例子来说明一下: {  StudentModel student=studentDAO.selectById(1);  student.setClassNum(2);

小兵qwer的专栏 4200

Hibernate设置事务的隔离级别

方式有两种: 1)修改配置文件hibernate.cfg.xml实现 <hibernate-configuration> <session-factory> ...... <!-- 事务隔离级别 0:TRANSACTION_NONE 1:TR...

weixin_30678349的博客 305

Maven jar hibernate-validator 的引入引发的问题

在引入hibernate-validator的时候,一直报子工程这个的版本号应该是valid而不是父工程的version,造成这种原因是 jar包冲突,或者是jar包缺少的问题 org.hibernate hibernate-validator ${hibernate-validator.version} javax.el java

oppoppoppo的专栏 1万+

hibernate中lazy加载所引发的问题

可能原因: 当元素或者元素的lazy属性为true时,load() or get() or find()加载这些对象时,Hibernate不会马上产生任何select语句,只是产生一个Obj代理类实例,只有在session没有关闭的情况下运行Obj.getXxx()时才会执行select语句从数据库加载对象,如果没有运行任何Obj.getXxx()方法,而session已经关闭,Obj已成游离...

Enjoying Techs! 118

hibernate interceptor所引发的问题

    去年写的,都忘了发了,现在发出来。     最近在做Hibernate Interceptor的实现时,因为不是所有的Dao都要使用interceptor,而且配置的时候,我们使用了冗于多个 SessionFactory,使用Spring的配置继承方法继承原始Session Factory的所有配置,并加入entityInterceptor的配置做到对hibernate制作的拦截...

guoshiguang的专栏 465

hibernate QueryPlanCache 引发的heap区内存溢出

转载自:https://blog.youkuaiyun.com/dream_lixiang/article/details/77248292 叙述 有一个项目中用到了hibernate作为数据持久层,当项目完成,使用loadrunner进行并发测试的时候,当测试跑了几天,就因为内存溢出挂掉了。当对奔溃场景进行重现的时,利用了JvisualVM工具对其进行监控,发现了其heap区内存一直在持续增长,利用heap dump分析其内存情况,发现有几种类型的对象增长异常。当时针对监控的问题还给领导发了一封邮件,信息如下:

lizhengyu891231的博客 1513

Hibernate中事务的管理

Hibernate中事务的管理 1、什么是事务? 事务:transaction,指的是业务逻辑的最小单元,由一组DML语句操作,执行要么全部成功,要么全部失败。 2、事务的四大特性 原子性:事务是业务逻辑的最小单元,不可分割。 一致性:事务由一组DML语句操作组成,要么全部执行成功,要么全部失败。 隔离性:事务A的执行与事务B隔离,不受其他事务的影响。 持久性:事务执行的结果,必须持久化保存到硬盘上的数据库中。 3、如果不考虑隔离性,引发的安全问题 读的问题: 脏读:一个事务读到另一个事务还未提交的数据

pipizhen_的博客 326

Hibernate事务与并发问题处理(乐观锁与悲观锁)

Hibernate事务与并发问题处理(乐观锁与悲观锁)

m0_73533108的博客 421

jdk11 SpringBoot整合Hibernate时的坑!!

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed;

NewReErWen的博客 890
上一篇: Hibernate-inverse
下一篇: Linux实际常用命令(ZT) 非常有用
跑得快的东东
博客等级 码龄23年 2粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值