java Spring Data 和springJDBC返回不同的值

bnlyeluc  于 2023-03-16  发布在  Java
关注(0)|答案(1)|浏览(108)

各位!我有一个问题。我在我的项目中使用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);
    }

你能,请,给予我一个解释或一篇文章吗?我想这个问题可以在缓存。但没有找到答案。

h5qlskok

h5qlskok1#

就像评论里的家伙说的:我需要写:

entityManager.clear()

相关问题