ank*_*arg 5 spring jpa spring-data-jpa spring-boot
我们使用1.3.5版本创建了一个spring boot项目。我们的应用程序与 Mysql 数据库交互。我们创建了一组 jpa 存储库,在其中使用 findAll、findOne 和其他自定义查询方法。
我们面临着一个随机发生的问题。以下是重现它的步骤:
使用 spring-boot 应用程序在数据库上触发读取查询。
现在使用上述读取查询返回的记录的 mysql-console 手动更改 Mysql 中的数据。
使用应用程序再次触发相同的读取查询。
经过第3步,我们应该已经收到了第2步的修改结果,但我们得到的是修改前的数据。
现在,如果我们再次使用应用程序触发读取查询,它会为我们提供正确的值。
此问题是随机发生的。我们没有在我们的应用程序中使用任何类型的缓存。
在调试时我发现jpa-repository代码实际上正在调用mysql并且它也获取最新的结果,但是当这个调用返回到我们的应用程序服务时,令人惊讶的是返回值具有旧数据。
请帮助我们找出可能的原因。
JPA/数据源配置:
服务方式:
@Override
@Transactional
public List<Event> getAllEvent() {
return eventRepository.findAll();
}
Run Code Online (Sandbox Code Playgroud)
JPA 存储库:
public interface EventRepository extends JpaRepository<Event, Long> {
List<Event> findAll();
}
Run Code Online (Sandbox Code Playgroud)
@Cacheable(false)
Run Code Online (Sandbox Code Playgroud)
例子:
@Entity
@Table(name="table_name")
@Cacheable(false)
public class EntityName {
// ...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9287 次 |
| 最近记录: |