gpt4 book ai didi

hibernate - 如何禁用 hibernate 缓存

转载 作者:行者123 更新时间:2023-12-02 05:21:00 29 4
gpt4 key购买 nike

我正在尝试编写一个单元测试类,该类必须使用相同的查询以相同的测试方法从数据库中获取结果两次。但当第二次启用 Hibernate 缓存时,它实际上并没有访问数据库,只是从缓存中获取结果。

有人可以回答如何在 persistence.xml 中禁用缓存吗?

我尝试通过更改属性 hibernate.cache.use.query_cache = falsehibernate.cache.use_second_level_cache = false 来禁用。

但是没有成功。

最佳答案

Can someone please answer how to disable caching in persistence.xml.

默认情况下,二级缓存和查询缓存处于禁用状态(并且不会缓存查询,除非您显式缓存它们)。一级缓存无法关闭。

I tried to disable by changing properties (...)

这将禁用二级缓存和查询缓存(如果它们已启用)。

But It did not work.

老实说,“它不起作用”对于当前行为与预期行为的描述非常糟糕。提供更多详细信息、(伪)代码、SQL 跟踪可能会有所帮助。

话虽这么说,如果问题是关于 HQL 的,那么 HQL 查询肯定应该在后续执行时命中数据库(没有任何查询缓存)。如果需要观察这一点,请激活 SQL 日志记录。

如果问题是关于 Session#get()Session#load(),那么您可以使用 Session#refresh 重新加载实体的状态() 或调用 Session#clear() 彻底清除 session 。

关于hibernate - 如何禁用 hibernate 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3827704/

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