org.springframework.dao.InvalidDataAccessApiUsageException:写入
只读模式(FlushMode.MANUAL)中不允许执行操作:
您的会话进入FlushMode.COMMIT / AUTO或删除“ readOnly”标记
从交易定义。
我试图将其在代码和xml中更改为另一个flushmode
,但是它仍然是Auto。
hibernatetemplate.getSessionFactory().openSession().setFlushMode(FlushMode.COMMIT);
和
<prop key="org.hibernate.FlushMode">COMMIT</prop>
最佳答案
您很可能在会话中进行的操作(其中一些操作是在驻留或更新实体)不在事务上下文内。
尝试将它们包含在以下内容中:
Session session = hibernatetemplate.getSessionFactory().openSession();
Transaction tx = session.beginTrasaction();
...
tx.commit();
session.close();
现在,当您开始事务时,刷新模式应隐式设置为COMMIT / AUTO。