2010-02-19 11 views
7

¿Qué parámetros de configuración o preferencias de sesión debo configurar para corregir esto? No se puede escribir en un objeto de solo lectura? Aquí está el StackTrace para más información:handling hibernate UnsupportedOperationException: no se puede escribir en un objeto de solo lectura

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) 

Respuesta

8

ver si esto blog page es útil:

Compruebe que su clase de hibernación mapeo tiene mutable = "false", que previene Hibernate de emitir actualizaciones para las instancias ya existentes. Aquí hay un enlace a mi hilo Hibernate Forums sobre este problema .

+0

que enlazan parece roto, creo que debería apuntar a: - http://sergiy.kyrylkov.name/2005/12/04/cant-write-to -a-readonly-object-with-hibernate-read-only-second-level-cache/ –

+0

Y el enlace se rompe para siempre. –

2

Para la gente perezosa/estúpidos entre nosotros (como yo;))

cambiar

@Cache(usage = CacheConcurrencyStrategy.READ_ONLY) 

en

@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) 

(por ejemplo)

(en la base de datos tipo pojo)

podría ayudar también :)

S.

Cuestiones relacionadas