在休眠JPA的getReference()之后不使用setter发出select的情况下无法更新

阿尼尔·库玛(Anil Kumar):

我有以下方法-

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

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

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

但是,我观察到的行为如下-

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

我期望的行为是,如果我在代理上使用任何getter,则应该发出选择,但是当仅使用setter时,我希望更改在方法的最后通过更新进行提交,而没有选择发行。

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

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

提前致谢!

user10639668:

EntityManager.getReference()文档中:

获取一个实例,其状态可能会延迟获取。

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

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

关键是:除非获取实体状态,否则实体管理器无法保存实体的状态因此,除非您使用JPQL,否则您不能跳过先前的选择。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在不使用InputStream的情况下更新Java Apache POI中的现有Excel文件

如何在不使用Setter的情况下使用Getter

在有或没有自动接线的情况下,Symfony 4 setter注入无法捆绑使用

Jaxb在不使用getter / setter的情况下取消编组

如何在不使用XML的情况下使用Anko发出带有圆角的警报?

如何在不使用Postgres中的UPDATE查询的情况下更新记录

在不使用python数据类的setter的情况下拥有属性getter的pythonic方法是什么?

如何在不使用onChange的情况下使用React为<select>设置值?

如何避免未使用的setState函数?可以在不使用setter的情况下创建React useState吗?

如何在向终端发出一个请求(不使用文件)的情况下依次执行多个命令?

如何在不使用某个特定项目之后出现的项目的情况下,在不使用python方法的情况下计算列表中项目的#of

在不使用./的情况下运行命令

如何在不使用final的情况下禁用setter的生成?

Python-我应该在不使用init或setter的情况下使用只读@property吗?

在不使用循环的情况下更新列表的实体值

如何在不使用临时表的情况下使用LOAD DATA LOCAL INFILE更新

在不使用split()的情况下无法拆分文本

在不使用set的情况下更新列表!- 方案

是否可以在php标头之后不使用javascript的情况下重定向页面?

如何在不使用JPA的情况下创建新的Row,将其视为更新?

在不使用.loc的情况下根据条件更新列

在不使用ng-repeat的情况下使用Angular Material md-select

有没有办法在不使用 JBoss 休眠工具的情况下从数据库生成 jpa/hibernate 模型类?

在不使用 Ajax 的情况下从数据库查询的 java-script 中的值发出警报

如何在不使用 setter 的情况下从子类访问超类中的私有字段?

TypeScript:如何在不使用明确赋值断言的情况下使用 setter 初始化类的成员?

如何在不使用 eval() 的情况下使用回调更新函数包装中的条件?

如何使用 Spring MVC 在不使用 HttpServletRequest 会话的情况下更新 @SessionAttributes

React useState setter 如何在不使用状态变量的情况下更新此状态变量?