hibernate错误
来源:互联网 发布:python抓取微信朋友圈 编辑:程序博客网 时间:2024/06/08 13:09
在struts2的action里查出一个question实体的集合,在对questions遍历操作时,要往每个对象里set修改后的属性时,报如下错误:
ERROR - Application attempted to edit read only item: com.center.question.model.Question#999
java.lang.UnsupportedOperationException: Can't write to a readonly objectat org.hibernate.cache.ReadOnlyCache.lock(ReadOnlyCache.java:68)
at org.hibernate.cache.impl.bridge.EntityAccessStrategyAdapter.lockItem(EntityAccessStrategyAdapter.java:72)
at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:108)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1028)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:366)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:656)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754)
经查看是question.xml里加了<cache usage="read-only"/> 所导致的,由于数据不让修改而查看Dao里的Session,所用的是当前Session,而没有关闭
Session session = getHibernateTemplate().getSessionFactory().getCurrentSession();
所以在service 里手动创建Session,脱离spring,事务的管理
public List<Question> getQuestionBySectionId(Integer sectionId) {
String hql = "from Question q where q.sectionId=" + sectionId + " order by q.sort";
Session session = this.getHibernateTemplate().getSessionFactory().openSession();
List<Question> list = session.createQuery(hql).list();
session.close();
return list;
}
这样在不改变实体配置文件 的情况下,在action里就可以对集合中的实体进行set操作了
- Hibernate错误
- hibernate错误
- hibernate错误
- hibernate错误
- Hibernate错误
- hibernate错误
- hibernate错误
- hibernate 错误
- Hibernate 错误
- Hibernate错误
- hibernate错误
- Hibernate错误
- Hibernate错误
- Hibernate错误
- hibernate错误
- hibernate错误
- Hibernate错误
- hibernate org.hibernate.DuplicateMappingException错误
- Barry Boswell's Fusion Trading System
- iptables常用命令
- CListCtrl 设置选中状态
- 2014年软件评测师考试日期
- ubi文件系统
- hibernate错误
- c++读书笔记
- 九度OJ 1076 N的阶乘 -- 大数运算
- 针对:Arraylist集合无法修改,下一次枚举无法操作的解决方案
- 正则
- 《UNIX环境高级编程》笔记--管道
- redis使用实例
- 未来所有的行业都会被互联网改造
- 風水渙 (易經大意 韓長庚)