我需要坚持使用JPA随时间变化的集合。
假设我一次Customer
使得多个 Orders
,我将需要以下操作:
Customer c = new Customer();
Set<Order> o = new Set<Order>();
Instant validFrom = now(); // something similar
Instant validTo = infinity(); // something similar
c.setOrders(validFrom, validTo, o);
具有类似
的结构class TemporalSet<V> {
...
Instant validFrom;
Instant validTo;
Set<V> value;
}
且客户为
class Customer {
Collection<TemporalSet<Order>> orders;
}
我需要使用JPA保留orders
字段,而且我不知道该怎么做。
过去,当我问到如何处理时间属性时,有人建议我看看DaoFusion framework,其中包括Bitemporal Pattern by Erwin Vervaet,但到目前为止据我了解,由于映射是OneToMany,因此只能将其用于映射时空属性(而不是集合),因此第二面必须是单个值。
DaoFusion的Bitemporal模式部分中显示的示例确实显示了一个与Customer和Orders相似的示例,但据我所知,一次只能拥有一个订单,而不是一组订单。
我正确理解了该代码吗?
如何使用JPA处理临时集合? (我只需要有效时间,就不需要具有记录时间的双时态解决方案)
编辑:问题已更新,添加了Customer和TemporalSet字段