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"} ] }
誰かが私を助けて、マッピングと構成の何が問題なのか教えてくれませんか?