2017-03-17 80 views
0

我有一個設置,我使用OpenEntityManagerInViewFilter來啓用從我的數據庫非事務性讀取。爲了將這些讀取發送到主/從設置中的從設備,我設置了連接池以默認將連接設置爲只讀。我現在的問題是,即使用@Transactional註釋的方法是可讀寫的,連接也沒有設置爲讀寫,並且事務被髮送到只讀服務器。這是春季的預期行爲和/或我該如何解決這個問題?春季交易沒有設置連接只讀假

+0

我們使用一個特殊的標註在數據源之間切換:這種情況下的master/slave和事務性註釋中的只讀屬性,儘管對於slave數據源我們可能會這麼說,但我們並沒有對pool進行默認設置 – borowis

+0

您是如何設置的連接池爲「只讀」,使用什麼txn隔離? – sura2k

+0

@ sura2k HikariCP有一個HikariDataSource.setReadOnly,我使​​用innodb(可重複讀取)的默認隔離級別。 –

回答

0

面對相同的問題,雖然我已經在CP30池默認設置只讀標誌爲真。您可以通過ConnectionCustomizer界面來完成此操作。

我猜春假定默認的只讀值是false,因此沒有改變它。請參閱DataSourceUtils.prepareConnectionForTransaction

不知道這是否應該引發爲錯誤。