Я получаю старые данные с помощью 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
}
У кого-нибудь есть представление о том, что происходит?
ОБНОВЛЕНИЕ 1
begin , flush и коммит методы были просто актами отчаяния!Я знаю, что это не нужно.
Я забыл сказать что-то важно : тест, который я делаю, это добавление записи пользователя непосредственно в консоль базы данных , а затем попытка увидетьэто через мое веб-приложение, которое не показывает нового пользователя .Это «старые данные», о которых я упоминал, они отображают только «старых пользователей».
Я уже пытался поместить их в 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"/>
Так что-то еще ...