gpt4 book ai didi

java - findall() 并不总是从数据库中提取值吗?

转载 作者:行者123 更新时间:2023-12-02 01:18:20 28 4
gpt4 key购买 nike

我扩展了 CrudRepository 来创建一个名为 TaskDao 的类。我认为 taskDao.findall() 会从数据库中提取值。由于某种原因,taskDao.findall() 实际上返回包含注释“spiffy”的 newTask,即使 newTask 在注释更改为“spiffy”之前已保存到数据库中。就像它知道它只是将 newTask 插入数据库一样,因此它不会费心从数据库中提取最新值,而是尝试通过使用 newTask 本身来节省时间。这很糟糕。

taskDao.save(newTask);
newTask.setComment("spiffy");
model.addAttribute("comments", taskDao.findAll());

最佳答案

好吧,我让它像 dzone 文章一样工作。只不过答案是clear(),而不是flush()。在 dzone 文章中,它多次经过公园跑道。我没有传递任何参数。我想是因为我只想从entitiymanager清除缓存?我不太明白这些东西,但我知道 hibernate 或其他缓存值(如我的 newTask)并使用它们来节省时间,而不是像我需要的那样运行 SQL 来获取真实值。因此,与 dzone 文章不同,我没有传递任何参数,然后我没有运行 em.refresh(parkrunco​​urse),而是执行了 em.clear()。据我所知,所有 dzone 文章帮助我将 EntityManager 对象附加到我正在使用的所有内容,以便我可以清除()它。所有这些对我来说毫无意义,但希望它现在能继续发挥作用。

关于java - findall() 并不总是从数据库中提取值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57642954/

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