0
Hibernate無効なクエリキャッシュが機能しません。 クエリを実行するたびに、検索によって前のクエリデータが返されます。 私はインターネットのいくつかの例を試しましたが、誰も私のために働いていませんでした。Hibernateが無効なクエリキャッシュを無効にします。
私はすでにこの設定を試しています。私JPAUtilクラス
public class JpaUtil {
private static final EntityManagerFactory emf;
private static final ThreadLocal<EntityManager> threadLocal;
static {
emf = Persistence.createEntityManagerFactory("simuladosPU");
emf.getCache().evictAll();
threadLocal = new ThreadLocal<EntityManager>();
}
public static EntityManager getEntityManager() {
EntityManager em = threadLocal.get();
if (em == null) {
em = emf.createEntityManager();
threadLocal.set(em);
}
return em;
}
public static void closeEntityManager() {
EntityManager em = threadLocal.get();
if (em != null) {
em.close();
threadLocal.set(null);
}
}
で
<properties>
<!-- Nao remover AutoReconect=true -->
<property name="javax.persistence.jdbc.url"
value="jdbc:mysql://localhost:3307/teste?autoReconnect=true" />
<property name="javax.persistence.jdbc.user" value="teste" />
<property name="javax.persistence.jdbc.password" value="teste" />
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
<!-- validate | update | create | create-drop -->
<property name="connection.useUnicode" value="true" />
<property name="connection.characterEncoding" value="uf-8" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.cache.use_second_level_cache"
value="false" />
<property name="hibernate.cache.use_query_cache" value="false" />
<property name="javax.persistence.sharedCache.mode" value="NONE" />
<property name="org.hibernate.cacheable" value="false" />
<!-- C3P0 -->
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
<property name="connection.provider_class"
value="org.hibernate.connection.C3P0ConnectionProvider" />
<property name="hibernate.c3p0.validate" value="true" />
<property name="hibernate.c3p0.acquire_increment" value="5" />
<property name="hibernate.c3p0.min_size" value="5" />
<property name="hibernate.c3p0.max_size" value="40" />
<property name="hibernate.c3p0.max_statements" value="0" />
<property name="hibernate.c3p0.testConnectionOnCheckout"
value="true" />
<property name="hibernate.c3p0.preferredTestQuery" value="SELECT 1" />
<property name="hibernate.c3p0.idle_test_period" value="100" />
</properties>
</persistence-unit>
私はこのクエリキャッシュを無効にするために必要か?
これでは動作しませんが、私はそれを探して見つけてください.setHint( "org.hibernate.cacheable"、false)。答えをありがとう – Felipe