2014-02-09 36 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

“苛刻”是什么意思?您正在显示存储库方法,这显然使您想要在该级别管理缓存失效的印象。如果您正在寻找更接近已有解决方案的解决方案,则应相应更新问题。我们可以根据你的表现来判断:)。 –