Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa EclipseLink缓存使用CheckCacheThenDatabase_Jpa_Caching_Eclipselink - Fatal编程技术网

Jpa EclipseLink缓存使用CheckCacheThenDatabase

Jpa EclipseLink缓存使用CheckCacheThenDatabase,jpa,caching,eclipselink,Jpa,Caching,Eclipselink,我的场景类似于以下内容: User a = ...; //has email pippo@gmail.com em.remove(a); ... User aUser = findUserByEmail("pippo@gmail.com"); 其中findUser使用标记为CheckCacheThenDatabase的命名查询查询对象。不幸的是,它返回的对象(处于删除状态)并不像预期的那样为null 那么,为什么二级缓存没有相应地更新?您的意思是,您仍然在删除对象的txn中?如果是这样的话,我

我的场景类似于以下内容:

User a = ...; //has email pippo@gmail.com
em.remove(a);
...
User aUser = findUserByEmail("pippo@gmail.com");
其中findUser使用标记为
CheckCacheThenDatabase
的命名查询查询对象。不幸的是,它返回的对象(处于删除状态)并不像预期的那样为null


那么,为什么二级缓存没有相应地更新?

您的意思是,您仍然在删除对象的txn中?如果是这样的话,我会说这是正常的。如果不是,那就不是正常的是,相同的交易。但是,由于em.remove(用户)的原因,事务被认为是“脏的”,二级缓存不应该更新吗?如果没有,我如何强制更新缓存?二级缓存应该只使用提交的对象进行更新。您希望在该点启动的另一个EntityManager会看到未提交的更改吗?