gpt4 book ai didi

java - DataNucleus:提交事务时如何自动执行操作?

转载 作者:行者123 更新时间:2023-12-04 07:08:22 33 4
gpt4 key购买 nike

考虑使用具有以下持久性结构的 DataNucleus 的应用程序:

你有一个类有两个属性,比如 created (Date) 和 lastUpdate (Date):当这个类的对象将被提交时,你如何自动用适当的值填充这些属性?
将对象插入数据库时​​,适当的值将同时设置 created 和 lastUpdate 为当前时间,并在它发生更改时仅更新 lastUpdate。

最佳答案

我现在自己想通了。

您需要创建一个 InstanceLifecycleListener ...

public class BasicEntityLifecycleListener implements StoreLifecycleListener {

public void postStore(InstanceLifecycleEvent evt) {
}

public void preStore(InstanceLifecycleEvent evt) {
if((PersistenceCapable)evt.getSource() instanceof BasicEntity) {
BasicEntity obj = (BasicEntity)evt.getSource();
Date now = new Date();
if(JDOHelper.isNew(obj))
obj.setCreated(now);
obj.setLastUpdate(now);
}
}
}

然后在你的 PersistenceManager 中注册它......
PersistenceManager pm = pmf.getPersistenceManager();
pm.addInstanceLifecycleListener(new BasicEntityLifecycleListener(), null);

我在 DataNucleus Access Plaftorm manual 中找到了解决方案直到现在我才意识到。在线手册对我来说似乎有点复杂。

关于java - DataNucleus:提交事务时如何自动执行操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/763792/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com