我有一個類叫做VoceMenuUtente
,標註爲@Entity對象的領域,以2場:數據庫由Spring自動更新/休眠當我改變一類
- Descrizione
- Titolo
我做了一個select來獲取數據庫中的數據。打印在屏幕上之前,我必須添加一個字符串值從數據庫中得到的,所以我這樣做:
voceMenuUtente.setDescrizione = voceMenuUtente.getDescrizione + "blablabla";
我提出,在一個類中調用TransactionPreDAO
。我有該類的切入點:
<tx:advice id="txAdviceTransactionPreDAO" transaction-manager="transactionManager" >
<tx:attributes>
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="transactionPreDAOTxPointcut" expression="execution(* com.springgestioneerrori.preDAO.TransactionPreDAO.*(..))" />
<aop:advisor advice-ref="txAdviceTransactionPreDAO" pointcut-ref="transactionPreDAOTxPointcut" />
</aop:config>
在此之後,我的數據庫會自動更新,並在該領域Descrizione我沒有了原來的價值,但我有原來的值加「blablabla」 ?
爲什麼會發生這種情況?對於對象VoceMenuUtente
,我沒有任何「更新」方法。也許這取決於切入點。我還在學習春季,所以我可能犯了一些錯誤。
是否取決於我在標籤<tx:method name="*"/>
謝謝你的解釋。根據我在網上閱讀的內容,我也可以使用只讀=「true」,不是嗎?根據我的代碼,這將是一個更好的解決方案 – MDP
是的,如果你只有那一個選擇,你可以在這種情況下使用只讀事務。在這種情況下,Hibernate不會執行髒檢查,所以不會更新 –