gpt4 book ai didi

java - Spring JPA 缓存 - 我是否应该避免从存储库中多次检索相同的资源?

转载 作者:行者123 更新时间:2023-12-02 13:12:06 25 4
gpt4 key购买 nike

我的代码中有以下行:

String productName = Utils.getProductName(productId, productRepository, language);

此 util 方法使用方法 findOne(productId) 检索产品,但还有一些额外的逻辑。它在我的代码中的多个地方使用。

在下面几行的一个地方,我需要 Product 对象,因此我执行以下操作:

Product product = productRepository.findOne(productId);

在这里,我再次检索产品,因此我们再次对数据库执行相同的操作。但是我相信JPA(Hibernate)会缓存该对象,所以我不必担心它,性能不会受到影响。我说得对吗?

当然,我尽量避免这样的口是心非。但在这种情况下,重构 getProductName 方法会对我使用此方法的其他地方产生影响。所以我想保持原样。但如果性能成本很明显,我最好调整代码。

最佳答案

是的,实体管理器上启用了一级缓存。 “在第一级缓存中,CRUD 操作是在每个事务的基础上执行的,以减少向数据库发出的查询数量。”

http://www.developer.com/java/using-second-level-caching-in-a-jpa-application.html

请确保不要在未通知实体管理器或将更改刷新到数据库的情况下创建“不一致”状态。

关于java - Spring JPA 缓存 - 我是否应该避免从存储库中多次检索相同的资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43908051/

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