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

Community
  • 1
  • 1

0 Answers0