java - 使用 JPA 持久化一个时间集合
问题描述
我需要使用 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;
}
orders
我需要使用 JPA来坚持这个领域,但我不知道该怎么做。
过去,当我问如何处理时间属性时,有人建议我看一下DaoFusion 框架,其中包括Erwin Vervaet的双时间模式,但据我了解,它只能用于映射双时间属性(不是集合),因为映射是 OneToMany,所以第二面必须是单个值。
DaoFusion 的双时态模式部分显示的示例确实显示了一个与我类似的 Customer 和 Orders 示例,但据我了解,一次只能有一个订单,而不是订单集合。
我是否正确理解了该代码?
如何使用 JPA 处理时间集合?(我只需要有效时间,我不需要记录时间的双时态解决方案)
编辑:问题已更新,添加了 Customer 和 TemporalSet 的字段
解决方案
推荐阅读
- spring-boot - 在没有启动应用程序的情况下在 SpringBoot 中编写单元测试
- flutter - 在 Dart 中使用 await 和 return 有区别吗?
- javascript - 如何从异步函数中获取承诺的价值
- batch-file - 通过更改注册表设置启用 RDP 仅在之前已启用 RDP 多次的情况下才有效
- javascript - 如何将对象转换为数组?
- php - PHPExcel 日期格式
- javascript - 找不到打字稿模块(Vue)和意外的标记@Component
- r - 如何在字符串中查找模式并将其提取为数据框的新列
- debian - apt-get install 后未安装 Wireshark
- ionic-framework - 选择值相同时触发ionChange