參考資料
1 java.lang.UnsupportedOperationException: Can't write to a readonly object
[url]http://hi.baidu.com/allen_zzw/blog/item/75e79cd7214d9b26960a1607.html[/url]
操作如下:
在對記錄進行修改時,背景報錯如下:
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:84)
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:297)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:333)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
在程式中對應的class.hbm.xml檔案,有這這樣一句設定:
cache usage="read-only"/>
解決方法:
1 直接将這句設定删除就行了
2 把 [color=red]<cache usage="read-only"/>[/color]改為可以讀寫的[color=green]<cache usage="read-write"/>[/color]