What configuration parameters or session preferences do I need to set to fix this? Can't write to a readonly object? Here is the stacktrace for more information:
我需要设置哪些配置参数或会话首选项才能解决此问题?无法写入只读对象?以下是stacktrace以获取更多信息:
Caused by: java.lang.UnsupportedOperationException: Can't write to a readonly object
at org.hibernate.cache.ReadOnlyCache.lock(ReadOnlyCache.java:43)
at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:85)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at com.mycompany.arch.submission.registry.bean.RegSubmissionSpringService.perform_flush(RegSubmissionSpringService.java:1108)
at com.mycompany.arch.submission.registry.bean.RegSubmissionSpringService.saveRegistryData(RegSubmissionSpringService.java:1062)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy145.saveRegistryData(Unknown Source)
at com.mycompany.arch.submission.registry.bean.RegDataAccessManager.persistRegistry(RegDataAccessManager.java:54)
2 个解决方案
#1
8
See if this blog page is useful:
看看这个博客页面是否有用:
Check that your Hibernate class mapping has mutable="false", which prevents Hibernate from issuing updates for already existing instances. Here is a link to my Hibernate Forums thread about this problem.
检查您的Hibernate类映射是否具有mutable =“false”,这可以防止Hibernate为现有实例发布更新。这是我的Hibernate论坛主题关于此问题的链接。
#2
2
For the lazy/stupid people amongst us (like me ;))
对于我们中间的懒惰/愚蠢的人(像我一样;))
changing
@Cache(usage = CacheConcurrencyStrategy.READ_ONLY)
into
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
(for example)
(in the database type pojo)
(在数据库类型pojo中)
might help too :)
可能也有帮助:)
S.
#1
8
See if this blog page is useful:
看看这个博客页面是否有用:
Check that your Hibernate class mapping has mutable="false", which prevents Hibernate from issuing updates for already existing instances. Here is a link to my Hibernate Forums thread about this problem.
检查您的Hibernate类映射是否具有mutable =“false”,这可以防止Hibernate为现有实例发布更新。这是我的Hibernate论坛主题关于此问题的链接。
#2
2
For the lazy/stupid people amongst us (like me ;))
对于我们中间的懒惰/愚蠢的人(像我一样;))
changing
@Cache(usage = CacheConcurrencyStrategy.READ_ONLY)
into
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
(for example)
(in the database type pojo)
(在数据库类型pojo中)
might help too :)
可能也有帮助:)
S.