repository.update(parentEntity) не генерирует дочерний идентификатор сразу в транзакционном контексте
Я использую
micronaut-data-hibernate-jpa
для сохранения родительских и дочерних сущностей с использованием отношения JPA, несколько дочерних элементов добавляются к родительскому и сохраняются с использованием
parentWorkflowRepository.update(parentWorkflowEntity)
но он не генерирует идентификатор ChildWorkflowStateEntity и возвращается как сгенерированный с нуля дочерний идентификатор. Как я могу получить childId сразу после repository.update(parent).
@Entity
@Table(name = "Parent_Workflow")
public class ParentWorkflowEntity{
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "WFL_ID")
private List<ChildWorkflowStateEntity> wflStates = new ArrayList<>();
}
@Entity
@Table(name = "CHILD_WORKFLOW_STATE")
public class ChildWorkflowStateEntity{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID")
private Long id;
}
public interface ParentWorkflowRepository extends CrudRepository<ParentWorkflowEntity, Long> {}
long method(ParentWorkflowEntity parentWorkflowEntity, List<Object> list){
for(Object o: list){
ChildWorkflowStateEntity child = new ChildWorkflowStateEntity()
parentWorkflowRepository.getWflStates().add(child);
}
parentWorkflowRepository.update(parentWorkflowEntity);
return parentWorkflowEntity.getWflStates().findFirst().getId();
}