2011-04-07 16 views
2

我試圖設置我的spring/hibernate項目以使用主/從數據庫設置。休眠沒有調用連接上的setReadOnly(true)

事務似乎在春季工作(例如,當我嘗試在註釋爲@Transactional(readOnly = true)的方法中嘗試hibernateTemplate.merge()時,我得到一個異常)。但是hibernate並不使用註釋方法中的從屬數據庫。

@Transactional(readOnly = true)。

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
     destroy-method="close"> 
    <property name="driverClassName" value="com.mysql.jdbc.ReplicationDriver"/> 
    <property name="url" value="jdbc:mysql:replication://master:3306,slave:3306/proust"/> 
    <property name="username" value="username"/> 
    <property name="password" value="password"/> 
</bean> 

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
    <property name="dataSource" ref="dataSource"/> 
</bean> 

<tx:annotation-driven transaction-manager="transactionManager"/> 

然後我批註經理類或DAO類:

@Transactional(readOnly = true) 

......以及一些方法與

@Transactional(readOnly = false) 

我期望在類中的一些方法,以防止被執行主人,還有一些人反對奴隸,但他們都被對付主人。我可能做錯了什麼?

+0

嗨,你解決了這個問題嗎? – 2012-06-04 12:28:58

回答

0

對於@Transactional註釋,Hibernate不會將JDBC連接切換到R/O模式,它只會阻止刷新更改。

+0

如何使用spring,hibernate進行主/從設置? – 2012-06-04 12:31:13