gpt4 book ai didi

java - TransactionManager read-only=true 不适用于 mysql ReplicationDriver

转载 作者:可可西里 更新时间:2023-11-01 07:45:41 24 4
gpt4 key购买 nike

我们正在使用 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。所有读取的查询仍然来到主服务器。

类似问题有一个 Unresolved 问题 here .有没有人能解决这个问题?

最佳答案

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

你也可以引用这个solution .

关于java - TransactionManager read-only=true 不适用于 mysql ReplicationDriver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10833325/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com