Мне нужно сохранить с 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 framework , который включает Bitemporal Pattern от Erwin Vervaet , но, насколько я понимаю, его можно использовать только для сопоставления битемпоральных свойств (не коллекций), поскольку отображение - это OneToMany, поэтому вторая сторона должна иметь одно значение.
Пример, показанный в разделе Bitemporal pattern в DaoFusion, действительно показывает пример с Customer и Orders, который похож на мой, но, насколько я понимаю, можно иметь только один заказ за раз, а не набор заказов.
Правильно ли я понял этот код?
Как можно обрабатывать временную коллекцию с помощью JPA? (Мне нужно только правильное время, мне не нужно битемпоральное решение с рекордным временем)
edit: вопрос обновлен с добавлением полей Customer и TemporalSet