Я ищу эффективный способ историзации моих сущностей.
Для этой цели я добавил двунаправленные отношения между моими двумя сущностями. Я следовал многим советам во время экспериментов и нашел это решение. Вопрос в том, хорошее ли это решение?
Вариант использования:
У меня есть две сущности: одна содержит еще один такой:
Связи между двумя объектами выполняются следующим образом:
При обновлении объекта 1: Я хочу, чтобы предыдущий объект был сохранен. Недавно созданный будет связан с сущностью 2
Вот код из Entity1Controller:
@PutMapping("/entity1/{id}")
public Entity1 replace(@PathVariable Long id, @Valid @RequestBody Entity1 replacement)
{
return entity1Repository
.findById(id)
.map( found -> { log.debug(found.getDescription());
Entity1 newEntity = customRepo.replace(found, replacement, this.getUser());
List<Entity2> listEntity2 = found.getEntities2();
for(Entity2 entity02: listEntity2) {
entity02.setEntity1(newEntity);
}
entity2Repository.saveAll(listEntity2);
return newEntity;
}
)
.orElseThrow( () -> new EntiteNotFoundException(Entity1.EMPTY_INSTANCE, String.format("id = [%s]", id), null)
);
Например, это решение, которое я придумал с. Он работает для разумного количества данных, но я скептически отношусь к его производительности ..
У нас будет гораздо больше связей и данных ... именно поэтому я хотел бы поделиться вашим опытом в этом решении