【发布时间】:2018-06-18 19:35:23
【问题描述】:
我真的不知道我的问题到底是什么。
我的项目中有两个模型。
模型包
- Ansprechpartner
- 中尉
Ansprechpartner.java
@Entity
@Table(name = "ANSPRECHPARTNER")
@EntityListeners(AuditingEntityListener.class)
@JsonIgnoreProperties(value = {"anlageAm", "updatedAt"}, allowGetters = true)
public class Ansprechpartner {
...
@NotNull
@ManyToOne
@JoinColumn(name = "lief_code", foreignKey=@ForeignKey(name = "APART_LIEF_FK"))
private Lieferanten liefCode;
public Lieferanten getLiefCode() {
return liefCode;
}
public void setLiefCode(Lieferanten liefCode) {
this.liefCode = liefCode;
}
...
}
Lieferant.java
@Entity
@Table(name = "LIEFERANTEN")
@EntityListeners(AuditingEntityListener.class)
@JsonIgnoreProperties(value = {"anlageAm"}, allowGetters = true)
public class Lieferanten {
...
@Id
private String code;
@OneToMany(mappedBy = "liefCode")
private Set<Ansprechpartner> apart;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public Set<Ansprechpartner> getApart() {
return apart;
}
public void setApart(Set<Ansprechpartner> apart) {
this.apart = apart;
}
...
}
我的控制者:
@RestController
@RequestMapping("/apart")
public class AnsprechpartnerController {
...
@GetMapping("/all/{id}")
public Ansprechpartner getApartWithId(@PathVariable("id") long id) {
Ansprechpartner apart = apartRepository.findOne(id);
return apartRepository.findOne(id);
}
}
当我尝试获取 json 数据时,我遇到了以下问题。 Ansprechpartner 从 Lieferant 获取数据(因为该联接)。但随后 Lieferant 再次显示来自 Ansprechpartner 等的数据。
也许用下图来描述更好: Image with explanation
编辑:
我终于用@JsonIgnoreProperties 注解解决了:
在我的 Ansprechpartner.java 中,我是这样做的:
@NotNull
@JsonIgnoreProperties("apart")
// @JsonManagedReference
@ManyToOne
@JoinColumn(
name = "lief_code",
foreignKey=@ForeignKey(name = "APART_LIEF_FK")
)
private Lieferanten liefCode;
在我的 Lieferanten.java 中我是这样做的:
// @JsonBackReference
@JsonIgnoreProperties("liefCode")
@OneToMany(mappedBy = "liefCode", fetch = FetchType.LAZY)
private Set<Ansprechpartner> apart;
【问题讨论】:
标签: spring hibernate web-services spring-boot entity