java – JDO最佳实践:将对象存储为其父级或独立的集合?

我有一个User和Transaction类

每个交易在逻辑上属于一个用户.但我可能需要查询某些事务子集(例如:返回用户A的所有事务,其中Transaction.type = 1)

sql中,我只维护一个Transaction.userID字段,将其与User表链接.

>在JDO的对象世界中我应该这样做吗?存储事务对象与用户对象ID的指针字段分开?或者我应该只查询类型= 1的事务的相应User对象和子查询(例如)?
>如果我只查询User对象,我是否也可以返回给定查询感兴趣的那些Transaction对象(如前面的项目符号示例中所示)?

解决方法

恕我直言,一般来说,没有最好的做法.但是,对于在面向对象的上下文中具有事务的用户,我将为用户建模以使每个事务具有对其用户对象的引用的列表或事务集.

这样,您可以获取用户的所有事务,只需获取用户对象,然后从那里获取事务列表.

另一方面,您可以查询限制为特定类型的特定用户的事务.由于每个事务都与用户对象有关联,因此您始终可以“免费”获得正确的上下文.

当然,你应该考虑像懒惰和急切加载这样的设置,这取决于实体在检索后会发生什么(它们是在进程中使用还是被序列化并传输到远程进程等).

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...