JPA 2.1: Bulk Update and Delete

article/2025/10/3 23:25:07

为什么80%的码农都做不了架构师?>>>   hot3.png

JPA 2.1: Bulk Update and Delete

In the JPA 2.0 and early version, if you want to execute a bulk updating query, you have to use update or delete clause in JPQL directly. JPA 2.1 introduce new Criteria API for updating and deleting.

Post entity

Reuse the Post entity class as example. Add an extra boolean approved property.

In this example, the bulk update operation will set the approved value to true.

<pre> @Entity @Table(name="POSTS") public class Post implements Serializable { private boolean approved = false; } </pre>

Criteria Update and Delete API

In JPA 2.1, new CriteriaUpdate and CriteriaDelete are introduced in Criteria API for updating and deleting. The usage is very simple.

The CriteriaUpdate example.

<pre> CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaUpdate&lt;Post> q = cb.createCriteriaUpdate(Post.class); Root&lt;Post> root = q.from(Post.class); q.set(root.get("approved"), true) .where(root.get("id").in(getCheckedList())); int result = em.createQuery(q).executeUpdate(); log.info("update @" + result); </pre>

The CriteriaDelete example.

<pre> CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaDelete&lt;Post> q = cb.createCriteriaDelete(Post.class); Root&lt;Post> root = q.from(Post.class); q.where(root.get("id").in(checkedList)); int result = em.createQuery(q).executeUpdate(); log.info("delete @" + result); </pre>

The checkedList value is from checkbox values from JSF UI.

Summary

This feature is a small improvement to JPA API. If you are stick on the type-safe JPA metadata API for JPA programming, it is a big step.

The sample codes are hosted on my github.com account, check out and play it yourself.

https://github.com/hantsy/ee7-sandbox

When you run the project(jpa-bulk) on Glassfish 4.0 and you could get an exception.

<pre> java.lang.RuntimeException: unable to create policy context directory. </pre>

There is a known issue in Glassfish 4.0, the fix should be included in the next release. I am using a Nightly version to overcome this barrier temporarily.

转载于:https://my.oschina.net/hantsy/blog/180708


http://chatgpt.dhexx.cn/article/cNm0nNot.shtml

相关文章

ElasticSearch提供的bulk update性能对比

目的&#xff1a;为了对比update的数据中重复数据对性能的影响。

Java面试智力题逻辑题汇总2021

rand5()能够生成0-4的随机数 rand7()能够生成0-6的随机数 已知rand7()生成rand5() 已知rand5()生成rand7()

面试智力题精选:扑克牌问题

袁方同学在玩扑克牌。这幅扑克牌比较特别&#xff0c;没有花色&#xff0c;只有点数。每张牌的点数是1&#xff0c;2&#xff0c;3&#xff0c;...,20。一共20张牌。袁方把牌洗了很多遍以后&#xff0c;把所有牌正面朝下垒成一堆放在自己手上。他翻第一张牌&#xff0c;发现是1…

大厂面试常见智力题

1. 64匹马,8个赛道,找出前4名最少比赛多少场? 这是一道经常考的智力题 64匹马&#xff0c;我们要想知道哪匹&#x1f40e;跑的最快&#xff0c;前提条件是每一匹&#x1f40e;都要去比赛一场。所以刚开始的赛马规则是每匹马都要进行一次比赛。 步骤1: 把 64匹&#x1f40e;…

盘点面试中常见的智力题

由于某些不可抗力&#xff0c;几篇文章做了删除&#xff0c;重新上架&#xff0c;希望于你有益。 面试为何会出现智力题&#xff1f; 可能是为了考察应聘者的综合分析能力、逻辑思维能力、反应能力和解决问题能力吧~ 也可能是...... “我去&#xff01;这面试者能力可以啊&…

面试中常见的智力题

文章目录 一、提灯过桥问题&#xff1f;二、有两个鸡蛋&#xff0c;如何最快的试出100层楼中刚好那一层扔下鸡蛋会碎&#xff1f;三、在地球什么地方能够&#xff0c;往南走1公里&#xff0c;然后往东走1公里&#xff0c;再往北走1公里能回到原点&#xff1f;四、一块N x M的巧…

面试中常见智力题汇总

面试中常见智力题汇总 1. 二进制问题1.1 毒药问题1.2 分金块问题 2. 先手必胜问题2.1 抢 30的必胜策略2.2 100本书&#xff0c;每次能够拿1~5本&#xff0c;怎么拿能保证最后一次是你拿&#xff1f;2.3 轮流拿石子 3. 推理题3.1 掰巧克力问题3.2 辩论赛问题3.3 在24小时里面时针…

2020秋招华为笔试题-买钉子

1.题目描述 2.代码实现 主要思路&#xff1a;类似零钱兑换 #include <iostream> #include <vector> using namespace std;class Solution { public:int buyNails(vector<int>& nails, int count) {vector<int> dp(count1, -1);dp[0] 0;for(int …

华为2022硬件逻辑笔试题

单选题&#xff08;每题两分&#xff09; 1.以下关于过程赋值的描述&#xff0c;不正确的是&#xff08;&#xff09; A在非阻塞性过程赋值中&#xff0c;使用赋值符号“< ” B赋值操作符是“”的过程赋值是阻塞性过程赋值 C在非阻塞性过程赋值中&#xff0c;对目标的赋…

AJAX原理快速入门

AJAX的原理 Ajax 的原理简单来说通过 XmlHttpRequest 对象来向服务器发异步请求&#xff0c;从服务器获得数据&#xff0c;然后用 javascript 来操作 DOM 而更新页面的局部显示。 Ajax 的优点&#xff1a; 1.最大的一点是页面无刷新&#xff0c;给用户的体验非常好。 2.使用异…

Ajax详解~及原理刨析

目录 什么是Ajax 同步和异步 Ajax如何实现异步和局部刷新 Ajax工作原理 Ajax工作流程 1、创建XMLHttpRequest对象 2、创建HTTP请求 3、向服务器发送数据 4、设置回调函数 &#xff0c;在回调函数中针对不同的响应状态进行处理 完整实例 Jquery中的ajax 什么是Ajax…

和vue相似的ajax原理及vue中运用ajax

和vue相似的ajax原理及vue中运用ajax。 一&#xff0c;默认的app.vue/文件 App.vue     App.vue是项目的主组件&#xff0c;页面入口文件 &#xff0c;所有页面都在App.vue下进行切换&#xff0c;app.vue负责构建定义及页面组件归集。                二&…

ajax工作原理

ajax工作原理 在写这篇文章之前&#xff0c;曾经写过一篇关于AJAX技术的随笔&#xff0c;不过涉及到的方面很窄&#xff0c;对AJAX技术的背景、原理、优缺点等各个方面都很少涉及null。这次写这篇文章的背景是因为公司需要对内部程序员做一个培训。项目经理找到了我&#xff0…

Ajax原理学习

一、AJAX 简介 AJAX即“Asynchronous Javascript And XML”&#xff08;异步JavaScript和XML&#xff09;&#xff0c;是指一种创建交互式网页应用的网页开发技术。 AJAX 是一种用于创建快速动态网页的技术。 通过在后台与服务器进行少量数据交换&#xff0c;AJAX 可以使网页…

Ajax工作原理和实现步骤

目录 一 Ajax技术与原理 1.1 Ajax简介 1.2 Ajax所包含的技术 1.3 Ajax的工作原理 1.4 XMLHttpRequest 对象的三个常用的属性 1. onreadystatechange 属性 2. readyState 属性 3. responseText 属性 1.5 xmlhttprequst的方法 1. open() 方法 2. send() 方法 二 Ajax…

Ajax原理,技术封装与完整示例代码

在做项目和学习的时候&#xff0c;经常用到Ajax的相关技术&#xff0c;但是这方面的技术总是运用的不是十分好&#xff0c;就寻找相关博客来学习加深Ajax技术相关。 一、Ajax简介二、同步、异步传输区别 2.1 异步传输2.2 同步传输 三、Ajax所包含的技术四、基础Ajax示例五、完整…

Ajax 原理是什么?如何实现?

Ajax 原理是什么&#xff1f;如何实现&#xff1f; 一、Ajax 原理是什么二、实现过程创建XMLHttpRequest对象与服务器建立连接给服务端发送数据绑定onreadystatechange事件 三、封装 一、Ajax 原理是什么 AJAX全称(Async Javascript and XML) 即异步的JavaScript 和XML&#…

Ajax 原理详解

名字的来历: AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML) 优点是 在不刷新整个浏览器的情况下,与服务器交换数据并更新部分网页内容 AJAX是基于现有的Internet标准 AJAX是基于现有的Internet标准,并且联合使用它们: XMLHttpRequest 对象 (异步的…

原生js实现Ajax原理

相信很多小伙伴在面试的时候&#xff0c;大部分都逃不了被问原生js的问题吧&#xff0c;尤其是高频的高频&#xff0c;** 说一下实现原生Ajax的原理** 原生&#xff1f;&#xff1f;&#xff1f;哦买噶的&#xff01; 在回答这个问题前&#xff0c;我们需要了解一下什么是ajax…

Ajax原理

AJAX 即 Asynchronous Javascript And XML&#xff08;异步JavaScript和XML&#xff09;&#xff0c;是指一种创建交互式网页应用的网页开发技术。 AJAX 是一种用于创建快速动态网页的技术。它可以令开发者只向服务器获取数据&#xff08;而不是图片&#xff0c;HTML文档等资源…