Handling hibernate UnsupportedOperationException: unable to write readonly object

What configuration or session settings do I need to set to fix this? Can't write readonly object? The following is a description of 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) 
+7
java hibernate
source share
2 answers

See if this page is useful:

Make sure your Hibernate mapping class has mutable = "false", which prevents Hibernate updates from being released for existing instances. Here is a link to my forum about the construction, repair and interior design problem.

+8
source share

For lazy / stupid people among us (like me;))

changes

 @Cache(usage = CacheConcurrencyStrategy.READ_ONLY) 

in

 @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) 

(eg)

(in pojo database type)

can help too :)

S.

+2
source share

All Articles