gpt4 book ai didi

java - 如何在 "manual"后端查询更新后刷新实体

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:29:51 25 4
gpt4 key购买 nike

<分区>

假设有这种情况:

我们以标准方式配置了 Spring Data,有一个 Respository 对象,一个 Entity 对象,一切正常。

现在出于一些复杂的动机,我必须直接使用 EntityManager(或 JdbcTemplate,无论级别低于 Spring Data)来更新关联到我的表 Entity,带有原生 SQL 查询。因此,我没有使用 Entity 对象,而只是在我用作实体的表上手动执行数据库更新(更正确的说法是我从中获取值的表,请参阅下一行)。

原因是我必须将我的 spring-data Entity 绑定(bind)到一个 MySQL View ,它使多个表成为 UNION,而不是直接绑定(bind)到我需要更新的表。

发生的事情是:

在功能测试中,我调用“手动”更新方法(在创建 MySQL View 的表上),如前所述(通过实体管理器),如果我做一个简单的 Respository.findOne(objectId ),我得到了旧对象(未更新的对象)。我必须调用 Entitymanager.refresh(object) 来获取更新后的对象。

为什么?

有没有办法在 spring-data 中“同步”(开箱即用)对象(或强制刷新)?还是我在祈求奇迹?我不是讽刺,但也许我不是那么专家,也许(或可能)是我的无知。如果是,请向我解释原因并(如果你愿意)分享一些关于这个惊人框架的高级知识。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com