Получение старых данных с помощью JPA

Я получаю старые данные с JPA, даже если отключаю кэш. Я предполагаю, что это потому, что ресурс настроен как RESOURCE_LOCAL, но я не уверен.

<?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="AppPU" transaction-type="RESOURCE_LOCAL">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <class>com.myentities.User</class>
        <properties>
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://127.0.0.1:3306/mydatabase"/>
            <property name="javax.persistence.jdbc.password" value="*****"/>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
            <property name="javax.persistence.jdbc.user" value="user1"/>
            <property name="eclipselink.logging.level" value="FINEST"/>
        </properties>
    </persistence-unit>
</persistence>

Мой код, который получает старую информацию о пользователе:

public List<User> findAll(App app) {       
        getEntityManager().getTransaction().begin();        
        Query q = getEntityManager().createQuery("SELECT t1 FROM User t1 WHERE t1.app.idApp=:idApp");
        q.setParameter("idApp", app.getIdApp());
        getEntityManager().flush();
        getEntityManager().getTransaction().commit();
        List resultList = q.getResultList();        
        return resultList;
    }

Моя сущность:

@Entity
@Table(name = "user")
@Cache (
     type=CacheType.NONE
     )
public class User implements Serializable {

// some attributtes

}

У кого-нибудь есть идеи, что происходит?

UPDATE 1

Методы begin, flush и commit были просто актами отчаяния! Я знаю, что это не нужно.

Я забыл сказать кое-что важное: тест, который я делаю - это добавление записи пользователя прямо на консоли базы данных и затем попытка увидеть его через мой webapp, который не показывает нового пользователя. Это и есть "старые данные", о которых я говорил, он отображает только "старых пользователей".

Я уже пытался поместить это в persistence.xml и не увидел никакой разницы в результатах:

<property name="eclipselink.cache.shared.default" value="false"/>
<property name="eclipselink.cache.size.default" value="0"/>
<property name="eclipselink.cache.type.default" value="None"/>

Так же как и что-то другое...

6
задан Joshua Taylor 19 October 2015 в 16:06
поделиться