【发布时间】:2021-12-02 02:34:58
【问题描述】:
我有这个问题,我以前没有遇到过,所以我寻求帮助。 我有这个实体类
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor(access = AccessLevel.PRIVATE)
@Builder(toBuilder = true)
@Entity
@Table(name = "persons")
class Person {
@Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
@Type(type = "uuid-char")
private UUID id;
@Column
private String name;
@Column
private int age;
@EqualsAndHashCode.Exclude
@ToString.Exclude
@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable(name = "person_contact", joinColumns = {@JoinColumn(name = "person_id", referencedColumnName = "id")},
inverseJoinColumns = {@JoinColumn(name = "contact_id", referencedColumnName = "id")})
private Set<Person> contacts;
}
我遇到的主要问题是,当我将此实体映射到具有与上面显示的相同属性的某个 DTO 时,当我从控制器端检索它作为响应时,我得到递归,因为有些东西不正确“接触”关系。我怎样才能摆脱这个问题?我只想一次又一次地从集合中检索 ID、年龄和姓名,而不是集合本身。我怎么能忽略它?
【问题讨论】:
-
@JsonIdentityInfo.
标签: java json spring-boot jpa jackson-databind