java.lang.UnsupportedOperationException:此缓存未实现LOCK_ALL
执行下面的查询时,我收到错误java.lang.UnsupportedOperationException:此缓存未实现LOCK_ALL,java,spring,hibernate,caching,entitymanager,Java,Spring,Hibernate,Caching,Entitymanager,执行下面的查询时,我收到错误java.lang.UnsupportedOperationException:未对此缓存实现所有锁定。使用Hibernate和SpringMVC。我已经为我的实体完成了PofSerializer类,并将其映射到缓存中 @Override @Transactional //@Rollback() //@Transactional() public List<SetupOptTypeCompatAdmin> updateOptTypeCompat(List&
java.lang.UnsupportedOperationException:未对此缓存实现所有锁定。使用Hibernate和SpringMVC。我已经为我的实体完成了PofSerializer
类,并将其映射到缓存中
@Override
@Transactional
//@Rollback()
//@Transactional()
public List<SetupOptTypeCompatAdmin> updateOptTypeCompat(List<SetupOptTypeCompatAdmin> setupOptTypeCompatAdminEntity)
{
StringBuilder queryBuffer;
if (CollectionUtils.isNotEmpty(setupOptTypeCompatAdminEntity))
{
for (SetupOptTypeCompatAdmin newSettings : setupOptTypeCompatAdminEntity)
{
queryBuffer= new StringBuilder();
queryBuffer.append("UPDATE SETUP_DFT_OT_COMPAT SET COMPAT_IND='T'");
queryBuffer.append(" WHERE SETUP_DFT_OT_BRAND_ID="+newSettings.getBrandID()+" AND OPTION_TYPE_COMPAT_ID="+newSettings.getOptTypeCompatID()+" AND");
queryBuffer.append(" OPTION_TYPE_ID="+newSettings.getOptTypeID() +" AND COMPAT_IND='F'");
try{
entityManager.createNativeQuery(queryBuffer.toString()).executeUpdate();
//entityManager.createQuery(queryBuffer.toString()).executeUpdate();
//entityManager.getLockMode(paramObject)
}
catch(Exception ex)
{
LOGGER.error("Error in entityManager.createNativeQuery" + ex);
}
}
}
//List<SetupOptionDefaultValues> optionValIdList = (List<SetupOptionDefaultValues>) entityManager.createNativeQuery(queryBuffer.toString(), SetupOptionDefaultValues.class).getResultList();
return setupOptTypeCompatAdminEntity;
}
@覆盖
@交易的
//@回滚()
//@事务性()
公共列表更新类型兼容(列表设置类型兼容AdminEntity)
{
StringBuilder queryBuffer;
if(CollectionUtils.isNotEmpty(setupopttypecompatitadminity))
{
用于(SetupOptTypeCompatAdmin新闻设置:setupOptTypeCompatAdminEntity)
{
queryBuffer=新的StringBuilder();
append(“更新安装程序\u DFT\u OT\u COMPAT SET COMPAT\u IND='T'”);
queryBuffer.append(“WHERE SETUP_DFT_OT_BRAND_ID=“+newSettings.getBrandID()+”和OPTION_TYPE_COMPAT_ID=“+newSettings.getOptTypeCompatID()+”和”);
queryBuffer.append(“OPTION_TYPE_ID=“+newSettings.getOptTypeID()+”和COMPAT_IND='F');
试一试{
entityManager.createNativeQuery(queryBuffer.toString()).executeUpdate();
//entityManager.createQuery(queryBuffer.toString()).executeUpdate();
//entityManager.getLockMode(paramObject)
}
捕获(例外情况除外)
{
LOGGER.error(“entityManager.createNativeQuery中的错误”+ex);
}
}
}
//List optionValIdList=(List)entityManager.createNativeQuery(queryBuffer.toString(),SetupOptionDefaultValues.class)。getResultList();
返回setupOptTypeCompatAdminEntity;
}
我想,消息很清楚,您的缓存不支持LOCK\u ALL
。在应用程序启动时,您是否正在执行缓存。锁定(全部锁定)
?否。甚至我都不知道该怎么做。SetupOptTypeCompatAdmin是我为其创建的新实体类。在缓存配置中配置相同。我用LOCK_ALL这个词检查了我的整个项目。我什么都没有。编辑问题以显示缓存配置和缓存详细信息。还可以在代码中指出哪一行引发异常。代码中的某些注释行会造成混乱,请仅粘贴您正在执行的代码。正在使用哪个应用程序服务器以及该服务器是如何启动的?我的意思是,它是集群环境还是单服务器实例?