也许我错过了一些简单的事情,因为我认为这是一种常见的情况......
当我使用从数据存储区检索的对象时,我想检测对象的任何更改并更新内存缓存。在非JDO场景中,这很容易,因为任何数据逻辑层都会拦截所有更新,因此有机会更新内存缓存。
但是,使用JDO,更新是通过更新附加对象,然后让持久性管理器在关闭时完成其余操作来实现的,因此我的代码永远不会收到更新通知。我可以将事件放入我的所有getter和setter中,以通知我对象的更改,但我宁愿避免这种情况。
任何有关如何正常完成此事的线索都将受到赞赏。
答案 0 :(得分:2)
您可以在JDO带注释的对象中添加preUpdate hook。这听起来像是适用于您的用例。
链接中的示例代码:
@Entity
public class Thing {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
// Your Primary Key
// Getters, setters, constructors, oh my!
@PrePersist
@PreUpdate
public void prePersist() {
// get JCache client instance
// serialize object
//store in cache
}
}
编辑:糟糕,这是一个JPA示例。该链接有JDO示例。