일부 엔티티에서 간단한 CRUD 연산을 수행하기 위해 Spring MVC Rest Controller를 사용하고 있습니다. 잭슨이 @ManyToOne 관계를 올바르게 구현하는 방법을 알아 내려고 애 쓰고 있습니다. Jackon이 관계의 "반대"면을 직렬화하면 "소유"속성이 생략됩니다. Heres는 내 코드를 살펴 :Jackson은 객체의 직렬화를 통해 @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