天天看點

Hibernate之java.lang.UnsupportedOperationException: Can't write to a readonly obj

參考資料

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]

繼續閱讀