java.sql.SQLException:连接是只读的。 hibernate中不允许导致数据修改的查询

时间:2016-01-05 05:57:27

标签: java mysql sql-server spring hibernate

我正在将我的数据库SQL Server迁移到MYSQL。我已经设置了数据库,但是当我将其配置到xml配置文件并执行项目时,我收到了错误。

java.sql.SQLException: Connection is read-only. Queries leading to data modification are not allowed

还有一件事是由hibernate生成的所有select查询都成功生成,但是当hibernate执行insert查询时,抛出相同的异常。

所以简单来说就是无法修改在mysql中设置的数据库

这是我的applicationcontext.xml代码

<beans> 
<!-- Hibernate -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost:3306/test_live_30"/>
    <property name="username" value="root" />
    <property name="password" value="" />
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource"></property>
    <property name="useTransactionAwareDataSource" value="true" />
    <property name="mappingResources">
        <list>              
            <value>src/dao/hbms/Company.hbm.xml</value>
            <value>src/dao/hbms/ProductClaimsLoading.hbm.xml</value>
          </list>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="connection.pool_size">1</prop>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.generate_statistics">true</prop>
            <prop key="hibernate.cglib.use_reflection_optimizer">false</prop>               
        </props>
    </property>
</bean>

<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
</bean>                  

1 个答案:

答案 0 :(得分:0)

我知道这篇文章很老,但这个线索可能对其他人有所帮助。

我在使用spring + hibernate + spring-data-repository时有类似的问题,其中一个我的AbstractRepository扩展了SimpleJPARepository类,我不得不提到@Transactional annotion到我的自定义方法,我在google或其他地方找不到解决方案/线索。不知何故,我发现新的方法缺少@Transactional annotion,一旦指定然后开始像魅力一样工作..!感谢