Почему возвращаемая сущность из saveAndFlu sh () имеет свои поля OneToMany, сопоставленные с нулем? - PullRequest
0 голосов
/ 23 марта 2020

У меня есть следующие объекты:


@Entity
@Table(name = "USER_LABEL")
public class Label {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column
    private long id;

    @Column
    private String caption;

    @OneToMany(mappedBy = "label", fetch = FetchType.EAGER , cascade = CascadeType.ALL)
    private Set<PartLabel> parts;
}


@Entity
@Table(name = "label_parts")
public class PartLabel {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "LABEL_PART_ID")
    private long id;

    @ManyToOne
    @JoinColumn(name = "LABEL_ID", referencedColumnName = "LABEL_ID", nullable = false)
    private Label label;
}

и репозиторий

public interface LabelRepository extends JpaRepository<Label, Long> {

}

Мой вопрос, почему в следующем фрагменте кода

набор «частей» в selectedLabel отображается правильно

, но набор «частей» в updatedLabel отображается на ноль, хотя база данных обновляется нормально

        Label selectedLabel =labelRepository.findById(2L).get();
        Label label = new Label();
        label.setId(2L);
        label.setCaption("any caption");
        Label updatedLabel = labelRepository.saveAndFlush(label);
...