我的 Java 应用程序每 10 秒查询一次 MySQL 服务器。我手动将新行插入表中。休眠找不到它。
当我手动删除一行时,Hibernate 显示该行存在。我想这是因为 Hibernate 缓存的原因。有什么方法可以完全禁用它吗?
你指的是一级缓存还是二级缓存?有一个休眠 http://www.hibernate.org/二级缓存如Ehcache http://ehcache.org/缓存与您手动修改的同一表中的行相对应的实体可能会导致您所描述的行为。一级缓存不会导致这种行为,而且我认为您无论如何也不能禁用它。
要禁用 Hibernate 二级缓存,请从 Hibernate 配置文件中删除,hibernate-cfg.xml
,所有引用二级缓存的行。例如:
<!-- Enable the second-level cache -->
<property name="hibernate.cache.provider_class">
net.sf.ehcache.hibernate.EhCacheProvider
</property>
<property name="hibernate.cache.region.factory_class">
net.sf.ehcache.hibernate.EhCacheRegionFactory
</property>
<property name="hibernate.cache.use_query_cache">true</property>
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.use_structured_entries">true</property>
<property name="hibernate.cache.generate_statistics">true</property>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)