0

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

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

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

现在,我从数据库中加载史蒂夫的实体,同时我得到他儿子的实体,也就是乔恩。但是,当我将 Jon 的名字更新为“Marc”时,当我再次加载具有 Steve 的实体时,同样的更改不会得到反映。

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

我需要在更改时更新此实体,即,每当实体有任何字段更新时,缓存中的同一实体都会随更新一起刷新。

请帮忙。谢谢 :)

4

1 回答 1

0

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

你是怎么更新名字的?

于 2013-05-30T13:27:44.320 回答