在 hibernate JPA 的 getReference() 之后,如果不使用 setter 发出 select 则无法更新

2024-05-04

我有以下方法 -

 @Transactional
 public void savethis(){
    EntityObject t = entityManagerTreasury.getReference(EntityObject.class, 1);
    t.setAction("abc");
 }

现在,按照以下答案 -https://stackoverflow.com/a/1608621/4881766 https://stackoverflow.com/a/1608621/4881766

我应该只在我的 sql 日志中看到更新查询。

然而我观察到的行为如下 -

  1. 给定代码 - 选择然后更新
  2. 评论 t.setAction("abc");行 - 没有选择,没有更新
  3. 用 find() 替换 getReference() - 选择然后更新

我期望的行为是,如果我在代理上使用任何 getter,那么应该发出 select,但是当仅使用 setter 时,我希望在方法末尾提交更改,并进行更新,并且不进行选择发布。

事实证明,无论我对代理对象、getter 或 setter 做什么,它都会发出一个选择。

我想更新给定 ID 的实体的选定字段。 如果有任何方法可以更新我想要的任何字段而无需编写 jpql 或本机查询,我将非常感激。

提前致谢!


来自EntityManager.getReference() https://docs.oracle.com/javaee/7/api/javax/persistence/EntityManager.html#getReference-java.lang.Class-java.lang.Object-文档:

获取一个实例,其状态可以被延迟获取。

因此,之后entityManagerTreasury.getReference没有发出选择。

仅在那之后t.setAction("abc"),如果尚未获取实体状态,则发出选择来获取状态。

重点是:除非获取实体状态,否则实体管理器无法保存实体的状态。因此你cannot跳过之前的选择,除非您使用 JPQL。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 hibernate JPA 的 getReference() 之后,如果不使用 setter 发出 select 则无法更新 的相关文章

  • JavaMail Gmail 问题。 “准备启动 TLS”然后失败

    mailServerProperties System getProperties mailServerProperties put mail smtp port 587 mailServerProperties put mail smtp
  • 如何在一行中将字符串数组转换为双精度数组

    我有一个字符串数组 String guaranteedOutput Arrays copyOf values values length String class 所有字符串值都是数字 数据应转换为Double QuestionJava 中
  • ElasticBeanstalk Java,Spring 活动配置文件

    我正在尝试通过 AWS ElasticBeanstalk 启动 spring boot jar 一切正常 配置文件为 默认 有谁知道如何为 java ElasticBeanstalk 应用程序 不是 tomcat 设置活动配置文件 spri
  • Java8无符号算术

    据广泛报道 Java 8 具有对无符号整数的库支持 然而 似乎没有文章解释如何使用它以及有多少可能 有些函数 例如 Integer CompareUnsigned 很容易找到 并且似乎可以实现人们所期望的功能 但是 我什至无法编写一个简单的
  • java.io.IOException: %1 不是有效的 Win32 应用程序

    我正在尝试对 XML 文档进行数字签名 为此我有两个选择 有一个由爱沙尼亚认证中心为程序员创建的库 还有一个由银行制作的运行 Java 代码的脚本 如果使用官方 认证中心 库 那么一切都会像魅力一样进行一些调整 但是当涉及到银行脚本时 它会
  • 在数据流模板中调用 waitUntilFinish() 后可以运行代码吗?

    我有一个批处理 Apache Beam 作业 它从 GCS 获取文件作为输入 我的目标是根据执行后管道的状态将文件移动到两个 GCS 存储桶之一 如果管道执行成功 则将文件移动到存储桶 A 否则 如果管道在执行过程中出现任何未处理的异常 则
  • 如何在 Java 中禁用 System.out 以提高速度

    我正在用 Java 编写一个模拟重力的程序 其中有一堆日志语句 到 System out 我的程序运行速度非常慢 我认为日志记录可能是部分原因 有什么方法可以禁用 System out 以便我的程序在打印时不会变慢 或者我是否必须手动检查并
  • Microsoft Graph 身份验证 - 委派权限

    我可以使用 Microsoft Graph 访问资源无需用户即可访问 https developer microsoft com en us graph docs concepts auth v2 service 但是 此方法不允许我访问需
  • Prim 的迷宫生成算法:获取相邻单元格

    我基于 Prim 算法编写了一个迷宫生成器程序 该算法是 Prim 算法的随机版本 从充满墙壁的网格开始 选择一个单元格 将其标记为迷宫的一部分 将单元格的墙壁添加到墙壁列表中 While there are walls in the li
  • 请求位置更新参数

    这就是 requestLocationUpdates 的样子 我使用它的方式 requestLocationUpdates String provider long minTime float minDistance LocationLis
  • 迁移到 java 17 后有关“每个进程的内存映射”和 JVM 崩溃的 GC 警告

    我们正在将 java 8 应用程序迁移到 java 17 并将 GC 从G1GC to ZGC 我们的应用程序作为容器运行 这两个基础映像之间的唯一区别是 java 的版本 例如对于 java 17 版本 FROM ubuntu 20 04
  • Java中接口作为方法参数

    前几天去面试 被问到了这样的问题 问 反转链表 给出以下代码 public class ReverseList interface NodeList int getItem NodeList nextNode void reverse No
  • 如何将文件透明地传输到浏览器?

    受控环境 IE8 IIS 7 ColdFusion 当从 IE 发出指向媒体文件 例如 mp3 mpeg 等 的 GET 请求时 浏览器将启动关联的应用程序 Window Media Player 我猜测 IIS 提供文件的方式允许应用程序
  • org.jdesktop.application 包不存在

    几天以来我一直在构建一个 Java 桌面应用程序 一切都很顺利 但是今天 当我打开Netbeans并编译文件时 出现以下编译错误 Compiling 9 source files to C Documents and Settings Ad
  • 将 JSON 参数从 java 发布到 sinatra 服务

    我有一个 Android 应用程序发布到我的 sinatra 服务 早些时候 我无法读取 sinatra 服务上的参数 但是 在我将内容类型设置为 x www form urlencoded 之后 我能够看到参数 但不完全是我想要的 我在
  • 当单元格内的 JComboBox 中有 ItemEvent 时,如何获取 CellRow

    我有一个 JTable 其中有一列包含 JComboBox 我有一个附加到 JComboBox 的 ItemListener 它会根据任何更改进行操作 但是 ItemListener 没有获取更改的 ComboBox 所在行的方法 当组合框
  • Windows 上的 Nifi 命令

    在我当前的项目中 我一直在Windows操作系统上使用apache nifi 我已经提取了nifi 0 7 0 bin zip文件输入C 现在 当我跑步时 bin run nifi bat as 管理员我在命令行上看到以下消息 但无法运行
  • 将2-3-4树转换为红黑树

    我正在尝试将 2 3 4 树转换为 java 中的红黑树 但我无法弄清楚它 我将这两个基本类编写如下 以使问题简单明了 但不知道从这里到哪里去 public class TwoThreeFour
  • 休眠以持久保存日期

    有没有办法告诉 Hibernate java util Date 应该持久保存 我需要这个来解决 MySQL 中缺少的毫秒分辨率问题 您能想到这种方法有什么缺点吗 您可以自己创建字段long 或者使用自定义的UserType 实施后User
  • 如何修复“sessionFactory”或“hibernateTemplate”是必需的问题

    我正在使用 Spring Boot JPA WEB 和 MYSQL 创建我的 Web 应用程序 它总是说 sessionFactory or hibernateTemplate是必需的 我该如何修复它 我已经尝试过的东西 删除了本地 Mav

随机推荐

  • 是否可以保证枚举的 ToString 的值?

    我当前使用的数据库有一个 varchar 字段 在我的代码中 我想将潜在值映射到枚举 例如 public enum UserStatus Anonymous Enrolled SuperUser 在该列的数据库级别 它有一个限制 其值必须是
  • Python列表切片效率

    在下面的代码中 def listSum alist Get sum of numbers in a list recursively sum 0 if len alist 1 return alist 0 else return alist
  • 如何使用 ng-pattern 验证 angularJs 中的电子邮件 ID

    我正在尝试使用 ng pattern 指令验证 angularJs 中的电子邮件 id 字段 但我是 AngularJs 的新手 我需要在用户输入错误的电子邮件 ID 后立即显示错误消息 我下面的代码正在尝试解决 帮助我使用 ng patt
  • 如何对德语文本进行词形还原?

    我有一篇德语文本 我想对其应用词形还原 如果不可能进行词形还原 那么我也可以接受词干提取 Data 这是我的德语文本 mails Hallo Ich spielte am fr hen Morgen und ging dann zu ein
  • 在自引用表中查询父项和子项

    我有一个Comments如下表所示 在MySQL content created at id parent id second comment 2014 06 03T10 08 44 0000 37 1 third comment 2014
  • 按降序对数字进行排序

    我有 20 个文本框 每个都包含一个特定的数字 我希望 textbox1 到 textboxN 的数字按降序排列 如果任何文本框的值为零 那么我想保留该文本框不变 需要 vb net 中的示例代码 用于按降序对元素进行排序 dim arra
  • Pandas 滚动 std 会产生不一致的结果并且与 value.std 不同

    使用 pandas v1 0 1 和 numpy 1 18 1 我想计算时间序列上不同窗口大小的滚动平均值和标准差 在我正在处理的数据中 某些后续点的值可以是恒定的 这样 根据窗口大小 滚动平均值可能等于窗口中的所有值 并且相应的 std
  • Tensorflow:从 TFRecords 文件中提取图像和标签

    我有一个 TFRecords 文件 其中包含图像及其标签 名称 大小等 我的目标是将标签和图像提取为 numpy 数组 我执行以下操作来加载文件 def extract fn data record features Extract fea
  • 在多分支管道中授予复制 artIfact 权限

    我有以下设置 通过配置的 Jenkins 多分支管道作业Jenkinsfile 成功签出和构建后 工件将被存档 并触发下游作业来部署生成的工件 为了让第二个工作能够通过 class CopyArtifact 步骤 它需要复制权限 所以问题是
  • 如何在AWS中将AMI从爱尔兰区域复制到中国区域

    我在 AWS 爱尔兰区域有一个设置 现在我希望在中国使用该 AMI 有谁知道完成任务的最佳实践是什么 任何帮助将不胜感激 提前致谢 中国地区目前不支持 AMI 复制 根据AWS 将 AMI 从美国传输或复制到中国 北京 https foru
  • Django 删除确认视图显示变量名称而不是信息

    谁能帮我解决以下场景 我有 3 张桌子 如下所示 1和2是我的数据表 并且 3 与 1 和 2 保持关系 1 Qa table ID QA 1 qa1 2 qa2 3 qa3 a field of my Qa model tags sele
  • 如何覆盖/更新当前由 IIS 提供服务的文件?

    问题 我的公司每月发布一份时事通讯 我将其托管在我们的内部网站上 我有一个供时事通讯作者上传最新版本的页面 作者上传最新的新闻通讯后 他会发送一封广播电子邮件来宣布新的新闻通讯 员工总是会检查新的时事通讯并向作者发送反馈以及需要进行的更正
  • 如何将大型 XML 字符串插入 Oracle 表中?

    我想将一个大的 XML 字符串插入到我的表中 我的表是 test id xml column XMLType 当我插入值时 它返回 字符串文字太长 错误 我上网查了一下 大家都说把数据类型改成CLOB 但我想存储相同的数据类型 XMLTyp
  • 如何确保参数仅指向静态存储期间的对象?

    我想确保赋予函数的参数指向 或引用 一个对象 该对象具有静态存储时间 class 该解决方案需要与 C 11 一起使用 而无需编译器特定的扩展 我在研究过程中发现的最相似的问题是仅限于C语言的一种 https stackoverflow c
  • 世界CF。服务通用方法

    如何在 wcf 服务中使用通用方法 我写了这段代码 OperationContract void AddItem
  • 什么是 scanf("%*s") 和 scanf("%*d") 格式标识符?

    格式的实际用途是什么 在 scanf 中 如果这种格式存在 那么它背后一定有某种目的 下面的程序给出了奇怪的输出 include
  • 同步迭代 javascript 对象

    我有一个像这样的对象 let myObject db1 db1 file1Id db1 file2Id db 1file3Id db2 db2 file1Id db2 file2Id 我遍历这个对象并在每次迭代中 我连接到数据库 检索文件
  • jcop是在java卡中安装小程序的唯一方法吗?

    我正在尝试理解java卡的概念 我有一些疑问 我想与大家分享 也许你会对我有任何最好的建议 Jcop 我在某处读到 Java Card OpenPlatform JCOP 是由 IBM Z rich Research Laboratory
  • java运算符“->”的含义[重复]

    这个问题在这里已经有答案了 下面的代码取自 SpringBoot 应用程序的初始化 java 运算符 gt 的含义是什么 Bean public EmbeddedServletContainerCustomizer containerCus
  • 在 hibernate JPA 的 getReference() 之后,如果不使用 setter 发出 select 则无法更新

    我有以下方法 Transactional public void savethis EntityObject t entityManagerTreasury getReference EntityObject class 1 t setAc