Hibernate二级缓存未获得更新

时间:2013-05-30 13:24:25

标签: hibernate memcached

我在Hibernate 3.2中创建了一个应用程序,并使用memcached对我的实体进行了二级缓存。

我面临的问题是,一旦实体被缓存,如果我更新任何缓存的实体项目,它就不会被更新。

我的用例是: 史蒂夫的儿子名叫乔恩。

现在,我从数据库中加载了Steve的实体,同时我得到了他儿子的实体,也就是Jon。但是当我对Jon的名字更新为'Marc'时,当我再次加载拥有Steve的实体时,相同的更改不会得到反映。

我认为memcached已将其缓存,当我更新它时,实体不会刷新。

我需要在更改时更新此实体,即,只要实体有任何字段更新,就会在缓存中使用更新刷新相同的实体。

请帮忙。谢谢:))

1 个答案:

答案 0 :(得分:0)

如果通过nHibernate执行更新,缓存将更新,如果它是在nHibernate之外完成的(例如通过数据库直接),那么nHibernate将不会知道更改,因此当您从缓存重新加载时它将不会有任何更新更新值。

您如何更新名称?