Spring MVC Rest Controllerを使用して、いくつかのエンティティで簡単なCRUD操作を実行しています。私は@ManyToOneの関係を適切に実装する方法を理解しようとジャクソンと少し苦労しています。 Jacquonが関係の「逆」側を直列化すると、「所有」プロパティは省略されます。 HERESに私のコードを見て:オブジェクトの直列化で@OneToMany関係の逆の部分が省略される
@Entity
public class Competition {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
private String nameInUrl;
@ManyToOne(cascade = CascadeType.ALL)
@JsonIdentityReference(alwaysAsId=true)
@JsonBackReference(value="test")
private Sport sport;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNameInUrl() {
return nameInUrl;
}
public void setNameInUrl(String nameInUrl) {
this.nameInUrl = nameInUrl;
}
public Sport getSport() {
return sport;
}
public void setSport(Sport sport) {
this.sport = sport;
}
}
@Entity
public class Sport {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
private String nameInUrl;
@OneToMany(cascade = CascadeType.ALL, mappedBy="sport")
@JsonManagedReference(value="test")
private Set<Competition> competitions = new HashSet<Competition>();
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNameInUrl() {
return nameInUrl;
}
public void setNameInUrl(String nameInUrl) {
this.nameInUrl = nameInUrl;
}
public Set<Competition> getCompetitions() {
return competitions;
}
public void setCompetitions(Set<Competition> competitions) {
this.competitions = competitions;
}
}
私はその全体が競争エンティティをシリアライズ達成することができますどのようにスポーツのエンティティを省略せずに、お願いしたいと思い
?
おかげで、デイブ
このオブジェクトをシリアル化しようとしましたか? – ZhenyaM
はい、しました。オブジェクトのjson表現は予想どおりにdeserializeしますが、競技オブジェクトを直列化するとスポーツプロパティは省略されます??? – DMcg