zoukankan      html  css  js  c++  java
  • 解决Hibernate Write operations are not allowed in read-only mode的方法

    错误信息:

    org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.

    解决方法:

    方法1:在出现异常的方法中加入

    1 getHibernateTemplate().setFlushMode(HibernateTemplate.FLUSH_EAGER);

    方法2:重写OpenSessionInViewFilter 

     1 package cn.com.farben.framework.util;
     2  
     3 import org.hibernate.FlushMode;
     4 import org.hibernate.Session;
     5 import org.hibernate.SessionFactory;
     6 import org.springframework.dao.DataAccessResourceFailureException;
     7 import org.springframework.orm.hibernate3.SessionFactoryUtils;
     8  
     9 public class OpenSessionInViewFilter extends
    10         org.springframework.orm.hibernate3.support.OpenSessionInViewFilter {
    11     protected Session getSession(SessionFactory sessionFactory)
    12             throws DataAccessResourceFailureException {
    13         Session session = SessionFactoryUtils.getSession(sessionFactory, true);
    14         session.setFlushMode(FlushMode.COMMIT);
    15         return session;
    16     }
    17  
    18     protected void closeSession(Session session, SessionFactory factory) {
    19         session.flush();
    20         super.closeSession(session, factory);
    21     }
    22 }

    配置web.xml:

     1 <filter>
     2     <filter-name>hibernateFilter</filter-name>
     3     <filter-class>cn.com.farben.framework.util.OpenSessionInViewFilter</filter-class>
     4     <init-param>
     5         <param-name>singleSession</param-name>
     6         <param-value>true</param-value>
     7     </init-param>
     8 </filter>
     9 <filter-mapping> 
    10     <filter-name>hibernateFilter</filter-name>  
    11     <url-pattern>/*</url-pattern> 
    12 </filter-mapping>
  • 相关阅读:
    2021秋 数分B1笔记
    android逆向奇技淫巧二十三:自己写app调用x音关键so(未完待续)(八)
    android逆向奇技淫巧二十二:ida栈回溯加密算法跟踪(未完待续)(七)
    http tcp websocket
    location.reload
    event.preventDefault
    document.querySelector
    造成播放端卡顿的原因
    引入外部组件 Vue.use()和Vue.component()
    Interpolation
  • 原文地址:https://www.cnblogs.com/wahsonleung/p/3505984.html
Copyright © 2011-2022 走看看