4

我们使用 com.mysql.jdbc.ReplicationDriver 连接主/从。我们配置 transactionManager 如下。

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

<tx:advice id="txHbAdvice" transaction-manager="transactionManager">
    <tx:attributes>
        <tx:method name="get*" read-only="true" />
    </tx:attributes>
</tx:advice>

我将只读参数设置为 true,但没有将java.sql.Connection.setReadonly()方法设置为 true。所有的读取查询仍然来自主服务器。

这里有类似问题的未解决问题。有没有人可以解决这个问题?

4

1 回答 1

-1

我的建议是围绕注释编写方面@Transactional,获取当前正在运行的会话,然后调用doWork(Work work)→ 并设置connection.setReadOnly是否设置@transaction了只读属性。我没有尝试过这个解决方案,但我认为它应该可以工作。

你也可以参考这个解决方案

于 2012-07-16T08:08:47.390 回答