Java Hibernate关闭缓存-Can';在应用程序中看不到直接对数据库所做的更改
我有一个简单的问题。当我直接在数据库中编辑某些内容时,例如通过UPDATE语句,我在应用程序中看不到任何更改。我在某个地方读到,这是Hibernate缓存的原因,还是我错了 我的hibernate配置如下所示:Java Hibernate关闭缓存-Can';在应用程序中看不到直接对数据库所做的更改,java,spring,hibernate,jpa,Java,Spring,Hibernate,Jpa,我有一个简单的问题。当我直接在数据库中编辑某些内容时,例如通过UPDATE语句,我在应用程序中看不到任何更改。我在某个地方读到,这是Hibernate缓存的原因,还是我错了 我的hibernate配置如下所示: <?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="transactionPersistenceUnit" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/TestTable?UseUnicode=true&characterEncoding=utf8" />
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.username" value="uberSecretUsername" />
<property name="hibernate.connection.password" value="uberSecretPassword" />
<property name="show_sql" value="true" />
<property name="hibernate.connection.useUnicode" value="true" />
<property name="hibernate.connection.characterEncoding" value="UTF-8" />
<property name="hibernate.connection.charSet" value="UTF-8" />
</properties>
</persistence-unit>
</persistence>
org.hibernate.ejb.HibernatePersistence
基本上没有什么能让你惊讶的。如何禁用此缓存或如何使其工作。当我直接在数据库上进行更改时,我只想在应用程序中看到更改您正在关闭entityManager吗?如果不这样做,这可能是您的问题。您只使用一级缓存(无法关闭)。二级缓存可能会导致它以这种方式运行,但您没有使用必须显式打开的二级缓存。我使用的是PersistenceContext,为什么要关闭entityManager@比尔:你是说第二级可以帮助你,还是我错了?不-你的帖子表明你认为这可能是由Hibernate缓存引起的,我告诉你Hibernate缓存不是原因。