java创建实体 内存_加载Java实体时内存不足
This code worked a couple of weeks ago, and works fine if there are fewer items in the database. The resulting error I am facing is: java.lang.OutOfMemoryError: GC overhead limit exceeded
这里没什么好奇怪的.由em.find()加载的实体被放置并保存在持久化上下文(在内存中)以跟踪更改,因此如果您在没有预防措施的情况下批量加载过多的实体,那么您将只是爆炸内存并获得OOME.
如果您确实需要对所有实体执行某些操作,则需要先调用flush()将所有更改推送到数据库,然后清除()以清除持久上下文并定期释放内存:
int i = 0;
for (Object id: someReallyBigIdList) {
myEntity = find(id);
// do something basic with myEntity
if ( i % 20 == 0 ) { //20, same as the JDBC batch size
//flush a batch of DML operations and release memory:
em.flush();
em.clear();
}
i++;
}
调用clear()会导致所有托管实体分离.对未刷新到数据库的实体所做的更改将不会保留.因此需要首先刷新()更改.
java创建实体 内存_加载Java实体时内存不足相关推荐
- flash cs4 java运行时_加载外部数据时Flash CS4 IDE内部缓存
它们存储在您的系统's 1166699 cache (i.e. I.E.'缓存中 . 我有Firefox作为我的默认浏览器,但它们仍然存储在" AppData\Local\Microsoft ...
- java创建临时文件夹_如何在Java中创建一个临时目录/文件夹?
有没有在Java应用程序内部创建临时目录的标准可靠方法? Java的问题数据库中有一个条目,注释中包含一些代码,但是我想知道在一个常用的库(Apache Commons等)中是否找到标准解决方案? # ...
- java的方法什么时候加载,java – JVM什么时候加载类?
只有当您需要有关该类的信息时,才会加载类. public class SomethingCaller { public static Something something = null; // (1 ...
- [转]Android有效解决加载大图片时内存溢出的问题
http://hi.baidu.com/%D6%C7%B4%EF%B8%DF%D4%B6lee/blog/item/7bd659af3f40dc1d4b36d68d.html 尽量不要使用setIma ...
- android 动画 图片 内存溢出,Android有效解决加载大图片时内存溢出的问题
尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图, 因为这些函数在完成decode后,最终都是通过ja ...
- java使用哪个类,怎么知道 java类从哪个jar 加载
如何知道 java类从哪个jar 加载 Java的类装载器使用的是优先策略,类加载器加载类的时候先找到哪个就加载哪个 从JSP页面就行测试 JBuilder Generated JSP if(claN ...
- java final 垃圾回收_新的Java垃圾回收机制ZGC 简介
垃圾回收是Java的一项重要机制,是二月份的一项学习计划之一. ZGC是一种较新的垃圾回收机制,在JDK11中实验性引入,看了R大的几篇文章,依然不懂,之后发现了一篇介绍地比较易懂的文章: 希望对你有 ...
- java加载并运行虚拟机_《深入理解Java虚拟机》- Java虚拟机是如何加载Java类的?...
Java虚拟机是如何加载Java类的? 这个问题也就是面试常问到的Java类加载机制.在年初面试百战之后,菜鸟喜鹊也是能把这流程倒背如流啊!但是,也只是字面上的背诵,根本就是像上学时背书考试一样. ...
- Java 类中各成分加载顺序和内存中的存放位置
一.什么时候会加载类? 使用到类中的内容时加载:有三种情况 1.创建对象:new StaticCode(); 2.使用类中的静态成员:StaticCode.num=9; StaticCode.show ...
- java 根据类名示例化类_如何使用示例从Java中的类路径加载资源
java 根据类名示例化类 Java中的类路径不仅用于加载.class文件,而且还可以用于加载资源,例如属性文件,图像,图标,缩略图或任何二进制内容. Java提供了API来将这些资源读取为Input ...
最新文章
- RabbitMQ探索:结构分析与常用方法解释
- 简单回声服务器的实现
- 一种网络进程间通信的方式—— 管道
- html 手动添加thead,HTML表格 - 我可以在thead之前添加额外的tbody吗?
- VC控件 Edit Control
- 深入SQL SERVER 2000的内存管理机制
- 简单表单提交php教程,PHP 表单数据提交与接收 超级简单《SSS教程 10》
- 软件专业大学生常用的刷题、找答案、找资源的网站
- halcon教程之VisionPro软件和Halcon软件 的详细对比
- 最新鲸发卡企业发卡网系统源码+免授权
- win11关闭微软拼音输入法中英文切换
- 微型计算机分类可以分为哪些,微型计算机的分类通常以微处理器的什么来划分...
- 数学之美——信息的度量
- AspectJ的Execution表达式
- 计算机网络协议(五)——DNS、HTTPDNS
- 关于Protel 2004 绘制电路原理图——遇到的一些小问题
- php面试时的自我称呼,求职者不知道在面试时该如何称呼hr?
- 2020-05-10
- 外呼系统需要服务器么,外呼
- linux下使用代理连接外网
热门文章
- Java集合---概述(1)
- 《嵌入式 Linux C 语言应用程序设计(修订版)》——2.1 嵌入式Linux下C语言概述...
- iOS中 百度地图详解
- 解决mac pro中三指轻按翻译的功能不起作用
- 淘宝TOP获取sessionkey
- MG3000系列设备IP修改内容
- 拿到串口的数据如何解析_详解如何用binlog2sql解析工具来实现mysql数据表异地恢复...
- 服务器接收到其他服务器传送的数据_其他-查找网内的其他DHCP服务器-从零开始学RouterOS系列21...
- 异常处理:java.lang.ClassNotFoundException: javax.xml.bind.JAXBContext
- mysql如何只查询表中的前几条数据?多表查询前提了解