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();
}

0 ответов

Другие вопросы по тегам