0

I've been having an annoying exception a lot lately, and after some research on Google and this forum I still haven't found an answer that could solve my problem.

Here's the thing - sometimes, I get the following error when trying to update or create a new object with hibernate:

I have referred here1 , here2 and here3 but not able to find solution .

2016-04-21 15:05:12,775 ERROR [stderr] (default task-49) org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.

2016-04-21 15:05:12,775 ERROR [stderr] (default task-49)    at org.springframework.orm.hibernate4.HibernateTemplate.checkWriteOperationAllowed(HibernateTemplate.java:1135)

2016-04-21 15:05:12,775 ERROR [stderr] (default task-49)    at org.springframework.orm.hibernate4.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:620)

2016-04-21 15:05:12,776 ERROR [stderr] (default task-49)    at org.springframework.orm.hibernate4.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:617)

2016-04-21 15:05:12,776 ERROR [stderr] (default task-49)    at org.springframework.orm.hibernate4.HibernateTemplate.doExecute(HibernateTemplate.java:340)

2016-04-21 15:05:12,776 ERROR [stderr] (default task-49)    at org.springframework.orm.hibernate4.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:308)

2016-04-21 15:05:12,776 ERROR [stderr] (default task-49)    at org.springframework.orm.hibernate4.HibernateTemplate.save(HibernateTemplate.java:617)

2016-04-21 15:05:12,776 ERROR [stderr] (default task-49)    at com.rss.master.COM.dao.impl.COMDaoImpl.save(COMDaoImpl.java:65)

2016-04-21 15:05:12,776 ERROR [stderr] (default task-49)    at com.rss.master.COM.bo.impl.COMBoImpl.save(COMBoImpl.java:39)

2016-04-21 15:05:12,776 ERROR [stderr] (default task-49)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

2016-04-21 15:05:12,776 ERROR [stderr] (default task-49)    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

2016-04-21 15:05:12,776 ERROR [stderr] (default task-49)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

2016-04-21 15:05:12,776 ERROR [stderr] (default task-49)    at java.lang.reflect.Method.invoke(Method.java:497)

2016-04-21 15:05:12,776 ERROR [stderr] (default task-49)    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)

2016-04-21 15:05:12,776 ERROR [stderr] (default task-49)    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)

2016-04-21 15:05:12,776 ERROR [stderr] (default task-49)    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)

2016-04-21 15:05:12,777 ERROR [stderr] (default task-49)    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)

2016-04-21 15:05:12,777 ERROR [stderr] (default task-49)    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)

2016-04-21 15:05:12,777 ERROR [stderr] (default task-49)    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)

2016-04-21 15:05:12,777 ERROR [stderr] (default task-49)    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)

2016-04-21 15:05:12,777 ERROR [stderr] (default task-49)    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)

2016-04-21 15:05:12,777 ERROR [stderr] (default task-49)    at com.sun.proxy.$Proxy76.save(Unknown Source)

2016-04-21 15:05:12,777 ERROR [stderr] (default task-49)    at com.rss.master.COM.bean.COM.save(COM.java:243)

2016-04-21 15:05:12,777 ERROR [stderr] (default task-49)    at com.rss.master.COM.bean.COM.btnSaveActionPerformed(COM.java:428)

applicationContext.xml :-

  <bean id="dataSourceTariff" class="org.apache.commons.dbcp.BasicDataSource">  
       <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/> 
        <property name="url" value="jdbc:oracle:thin:@192.168.0.111:1521:XE" /> 
        <property name="username" value="TARIFF"/> 
        <property name="password" value="RSS"/>        
    </bean> 

    <bean id="dataSourceSetting" class="org.apache.commons.dbcp.BasicDataSource">  
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/> 
        <property name="url" value="jdbc:oracle:thin:@192.168.0.111:1521:XE" /> 
        <property name="username" value="Setting"/> 
        <property name="password" value="RSS"/>     
    </bean> 

      <bean id="dataSourceMaster" class="org.apache.commons.dbcp.BasicDataSource">  
       <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/> 
        <property name="url" value="jdbc:oracle:thin:@192.168.0.111:1521:XE" /> 
        <property name="username" value="MASTERS"/> 
        <property name="password" value="RSS"/>        
    </bean> 

        <bean id="dataSourceMain" class="com.rss.setting.RoutingDataSource">  
     <property name="targetDataSources">
      <map key-type="com.rss.setting.DbType">

         <entry key="TARIFF" value-ref="dataSourceTariff"/>     
         <entry key="SETTING" value-ref="dataSourceSetting"/>
         <entry key="MASTERS" value-ref="dataSourceMaster"/>
       </map>
     </property>

    </bean>

    <bean id="sessionFactory3"
         class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">

        <property name="dataSource">
          <ref bean="dataSourceMain"/>
        </property>



        <property name="hibernateProperties">
           <props>
             <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
               <prop key="hibernate.show_sql">false</prop>
           <prop key="hibernate.hbm2ddl.auto">update</prop> 
                <prop key="format_sql">true</prop>

           </props>
        </property>
        </bean>

 <bean id="sessionFactoryMasters"
     class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">

    <property name="dataSource">
      <ref bean="dataSourceMaster"/>
    </property>
    <property name="configLocation">
            <value>classpath:hibernate1.cfg.xml</value>
        </property>


    <property name="hibernateProperties">
       <props>
         <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
           <prop key="hibernate.show_sql">false</prop>
       <prop key="hibernate.hbm2ddl.auto">update</prop> 
            <prop key="format_sql">true</prop>

       </props>
    </property>




  <property name="mappingResources">
    <list>         
        <value>hbm/Tool.hbm.xml</value>
         <value>TwoCloumnhbm/TwoCloumnSearch.hbm.xml</value>
        <value>CIMHBM/CIM.hbm.xml</value>
</list>
   </property>

</bean>
<bean id="HibernateTemplateMasters" class="org.springframework.orm.hibernate4.HibernateTemplate">
      <property name="sessionFactory" ref="sessionFactoryMasters" />
</bean>

<bean id="sessionFactoryTariff"
     class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">

    <property name="dataSource">
      <ref bean="dataSourceTariff"/>
    </property>
    <property name="configLocation">
            <value>classpath:hibernate2.cfg.xml</value>
        </property>
   <property name="hibernateProperties">
       <props>
         <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
           <prop key="hibernate.show_sql">false</prop>
       <prop key="hibernate.hbm2ddl.auto">update</prop> 
            <prop key="format_sql">true</prop>

       </props>
    </property>

  <property name="mappingResources">
    <list>         
           <value>COMHBM/COM.hbm.xml</value>
<!--           <value>TAMHBM/TAM.hbm.xml</value>                 -->
    </list>
   </property>

    </bean>

    <bean id="HibernateTemplateTariff" class="org.springframework.orm.hibernate4.HibernateTemplate">
      <property name="sessionFactory" ref="sessionFactoryTariff" />
    </bean>

    <bean id="sessionFactorySeeting"
     class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">

    <property name="dataSource">
      <ref bean="dataSourceSetting"/>
    </property>
    <property name="configLocation">
            <value>classpath:hibernate.cfg.xml</value>
        </property>
   <property name="hibernateProperties">
       <props>
         <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
           <prop key="hibernate.show_sql">false</prop>
       <prop key="hibernate.hbm2ddl.auto">update</prop> 
            <prop key="format_sql">true</prop>

       </props>
    </property>

  <property name="mappingResources">
    <list>         
           <value>hbm/LoginMaster.hbm.xml</value>             
    </list>
   </property>

    </bean>

LoginMasterBean :-

<bean id="exRateMasterDao" class="com.rss.master.dao.impl.LoginMasterDaoImpl">
        <property name="sessionFactory">
            <ref bean="sessionFactorySeeting"/>
        </property>
    </bean>
    <bean id="loginMasterBo" class="com.rss.master.bo.impl.LoginMasterBoImpl">
        <property name="exRateMasterDao" ref="exRateMasterDao"/>
    </bean>

    <tx:annotation-driven/>
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
<property name="sessionFactory" ref="sessionFactorySeeting" /> 
</bean> 

COM.XML

<bean id="comdao" class="com.rss.master.COM.dao.impl.COMDaoImpl">
     <property name="sessionFactory">
            <ref bean="sessionFactoryTariff"/>
        </property>
        <property name="hibernateTemplate" ref="HibernateTemplateTariff" /> 
</bean>

<bean id="combo" class="com.rss.master.COM.bo.impl.COMBoImpl">
    <property name="comdao" ref="comdao"/> 
</bean>

    <tx:annotation-driven/>
<bean id="transactionManager_COM" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
<property name="sessionFactory" ref="sessionFactoryTariff" /> 
</bean> 

First Try :-

com.rss.master.COM.dao.impl.save(Country c) {
DbContextHolder.setDbType(DbType.TARIFF); 
getHibernateTemplate().save(c);
}

Getting Error which i have posted in error Log .

Second Try:-

com.rss.master.COM.dao.impl.save(Country c) {
DbContextHolder.setDbType(DbType.TARIFF); 
getHibernateTemplate().setCheckWriteOperations(false);
DbContextHolder.setDbType(DbType.TARIFF); 
getHibernateTemplate().save(c);
}

Now no error is coming but data is not saving in Table . Seems not commit .

Third Try :-

com.rss.master.COM.dao.impl.save(Country c) {
DbContextHolder.setDbType(DbType.TARIFF); 
getHibernateTemplate().setCheckWriteOperations(false);
DbContextHolder.setDbType(DbType.TARIFF); 
getHibernateTemplate().save(c);
 getHibernateTemplate().flush();
}

I have scenario like selection data from "LoginMasterBean" and crating menu in JSF , which is working fine . then from that menu many screen will be linked which can refer different database . Please some one can assist me to fiend my mistake and how to over come from it . Thanks

3
  • Can you please show the code of com.rss.master.COM.dao.impl.COMDaoImpl.save? Commented Apr 21, 2016 at 14:54
  • Thanks Dunni , Is there any mistake i did in COMDAOIMP save , which i have posted . Commented Apr 23, 2016 at 7:08
  • Please any one have idea , how to solve it.. Commented Apr 28, 2016 at 11:09

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.