首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Zach2017
V2EX  ›  Java

JPA 调用存储过程后,无法获取修改后的值

  •  
  •   Zach2017 · 172 天前 · 1138 次点击
    这是一个创建于 172 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请教各位大佬, 项目中使用 JPA 调用存储过程, 之后在通过 EM 获取不到修改后的数据, 但是数据库中已经更新了, 请问有什么办法能够使 JPA 不走缓存直接查询数据库, 或者能够在存储过程之后刷新缓存吗? 谢谢!!

    6 回复  |  直到 2019-08-06 18:12:28 +08:00
    adzchao
        1
    adzchao   172 天前
    找配置文件 或者是 repository 肯定是方法上加了缓存注解 才会出现有缓存出现的
    Zach2017
        2
    Zach2017   172 天前
    @adzchao 感谢关注, 我在当前的 EM 中设置 CacheRetrieveMode.BYPASS, 还是无法直接从数据库中获取最新的数据, 每次都是获取上一次修改的数据!而且我检查了, 没有在方法上明确加缓存, 那是否是 JPA 默认的一些机制导致的, 有什么办法让这一次的查询直接查数据库吗?
    cheng6563
        3
    cheng6563   172 天前 via iPhone
    这部分改用 jdbcTemplate 吧,jpa 真的是一言难尽
    adzchao
        4
    adzchao   172 天前
    我不知道你的 CacheRetrieveMode.BYPASS 是干嘛用的 反正我整个项目都是 jpa 也没有出现缓存的现象 而且基本没有对于关于存储方面的配置
    alvinbone88
        5
    alvinbone88   172 天前 via Android
    刷新一下 Hibernate 的一级缓存
    Zach2017
        6
    Zach2017   172 天前
    感谢给位大佬,之前用的也是 jdbcTemplate, 目前公司基本上都用 JPA 来处理了,用起来是有点不习惯, 目前的做法是在调用存储过程之后, 直接调用 EM 的 clear 方法, 就是不知道会不会有其他的影响!
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1477 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 23ms · UTC 01:36 · PVG 09:36 · LAX 17:36 · JFK 20:36
    ♥ Do have faith in what you're doing.