各位!我有一个问题。我在我的项目中使用Spring Data和一些微服务。其中一个微服务更改了DB中的一行。然后我在我的微服务中检查该行。主要问题是findById方法返回旧的,没有改变的值。我放了一个断点,我的眼睛看到DB中的一个值,但是repository给予了我另一个。经过一些实验之后,我决定尝试通过Spring JBDC编写这个查询。现在一切都好了。这是Spring Data 查询:
Optional<MessageLog> byId = messageLogRepository.findById(id);
这是Spring JDBC:
public MessageLog findByIdJdbc(String id) {
SqlParameterSource sqlParameterSource = new MapSqlParameterSource("id", id);
String findByIdSQL = "SELECT * from MESSAGESLOG where ID = :id";
return namedParameterJdbcTemplate.queryForObject(findByIdSQL, sqlParameterSource, rowMapper);
}
你能,请,给予我一个解释或一篇文章吗?我想这个问题可以在缓存。但没有找到答案。
1条答案
按热度按时间h5qlskok1#
就像评论里的家伙说的:我需要写: