我在后台使用PostgreSQL数据库,在Spring Boot中使用Spring数据。
我有一个@Controller;
问题是,远程API在第2步中所做的更改没有反映在从第3步获取的db中。
@Transaction只是在步骤1左右,所以我会假设,特别是对于saveAndFlush调用,事务在退出该方法时结束?
我可以调用另一个@Controller方法,然后执行第3步,结果非常完美,远程API的更改反映得很好。
似乎Spring Boot/Data正在某个地方缓存整个请求的初始保存结果,这不是我想要的。有什么想法吗?
您将看到OpenEntityManagerViewFilter在所有3个步骤期间将EntityManager绑定到您的请求的效果。请求中的EntityManager不会注意您在步骤2中所做的数据库更改。
假设您没有任何竞争条件(即,步骤3在步骤完成之前运行),您可以收回实体缓存。
// inject the entityManager into a custom repository, and
entityManager.getEntityManagerFactory().getCache().evict(YourEntity.class, id)
我运行一个Spring启动1.5.2应用程序。我想将缓存添加到我的服务方法中,我已经添加了Spring引导启动缓存maven依赖,我正在使用@Cacheable注释,但它没有生效,我在@配置类中创建了我的服务bean-这里有一个例子 下面是我的服务方法的一个例子 我的repoistory接口方法如下 每当我从RestController调用此服务方法时,缓存从未被触发,看起来它没有正确设置 我能做
我想将主数据缓存到Redis。 所以,我写了这些代码。 和 和ymlfile 但是,缓存不工作... 无论何时调用printTest方法,都将执行“getTest”方法。Redis没有数据。。。我的代码中有什么问题? SpringBoot版本是1.4.0 依赖关系是
我正在使用Spring方法级别的注释@cacheable来缓存我从数据库中获取的数据。我可以在服务器启动时使用上述注释执行缓存吗?我尝试了这个,但它再次从数据库而不是从缓存中获取。
我对spring boot相当陌生,正在尝试使用Java持久性API hibernate mySQL持久性层构建spring boot应用程序。但当我试图使用entityManager获取所有记录时。createNamedQuery(“从学生s中选择*”,学生.class)。getResultList()它给了我以下异常。 Java语言lang.IllegalArgumentException:未
我正在尝试让spring boot让浏览器缓存静态资源。我的资源位于“静态”下的类路径中。当我查看发回的标题时,我看到修改标题设置得很好,但不知何故,标题“缓存控制:无存储”也被添加了。 我已经看到了如何在Spring Boot中启用HTTP响应缓存的答案,但这似乎不适用于我,因为我没有使用Spring Security性,它不在类路径上。 我正在使用带有胸片的Spring启动1.4.0。 那么,
我有一个简单的spring boot with redis应用程序,我正在构建该应用程序来缓存3个实体的主数据:电子邮件、产品和国家。我使用了spring boot starter依赖项 我还在应用程序中使用启动配置。属性文件 可缓存方法包括 问题是,一旦我从这个类加载其中一个方法,其他两个方法返回与第一个方法相同的数据,即使它们返回不同的列表,并且具有不同的可缓存注释值。我做错了什么?