2014-02-09 59 views
0

是否有可能使彈簧的數據修改查詢,如:春數據 - 修改查詢和了Ehcache(高速緩存)

@Modifying 
@Query("update User u set u.firstname = ?1 where u.lastname = ?2") 
int setFixedFirstnameFor(String firstname, String lastname); 

自動作廢我的用戶實體的Ehcache?

謝謝!

@org.hibernate.annotations.Cache(usage=CacheConcurrencyStrategy.READ_WRITE) 
public class User { 
    ... 
} 

在這種情況下,緩存失效會由Hibernate自動被照顧:

回答

1

是,如果你使用聲明例如READ_WRITE緩存併發策略作爲緩存的用戶實體是可能的。

0

看看Spring Cache抽象文件here。它基本上允許你配置什麼緩存/驅逐在哪裏,並完全配置哪個緩存提供程序將在您的應用程序配置中使用。

請注意,這將緩存在帶註釋的方法級別上。

+0

此解決方案對代碼更改的要求更高。我們希望儘可能減少我們當前的代碼基數 – Urbanleg

+0

「苛刻」是什麼意思?您正在顯示存儲庫方法,這顯然使您想要在該級別管理緩存失效的印象。如果您正在尋找更接近已有解決方案的解決方案,則應相應更新問題。我們可以根據你的表現來判斷:)。 –