2

2 つのエンティティを持つ JPA と H2 を使用した Spring Boot アプリがあります。

@Entity
@Table(name = "people")
public class Person {

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

    private String name;

    @OneToMany(mappedBy = "person", cascade = CascadeType.ALL)
    private Set<Skill> skills = new HashSet<Skill>();
}

@Entity
@Table(name = "skills")
public class Skill {

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

    private String name;

    @ManyToOne
    @JoinColumn (name="person_id")
    @JsonBackReference
    private Person person;
}

person エンティティ用の JPA リポジトリがあります。

@Repository
public interface PersonRepository extends CrudRepository<Person, Long> {
}

次のオブジェクトを保存しようとすると、すぐにスキルが含まれた正しいエンティティが返されますが、 を呼び出すrepository.find(<id-of-saved-entity>)と、スキルが空になります (そのため、永続化されませんでした)。

{ "name": "Test", "skills": [ { "name": "Skill1" }, { "name": "Skill2"} ] }

誰かが私を助けて、マッピングと構成の何が問題なのか教えてくれませんか?

4

1 に答える 1