【发布时间】:2016-01-25 09:07:06
【问题描述】:
我有两个双向映射的实体。具有一系列注册和注册本身的车辆。这些实体作为 REST 服务公开。
@Entity
@XmlRootElement
public class Vehicle implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String brand;
private String type;
@OneToMany(mappedBy = "vehicle", fetch = FetchType.EAGER)
private List<Registration> registrations;
}
问题在于 FetchType.EAGER 会产生无限递归。
@Entity
@XmlRootElement
public class Registration implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
@ManyToOne
private Vehicle vehicle;
}
经过一番研究,我发现我必须在 Vehicle 类中添加注释 @JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id") 才能解决问题。
我的问题是:PropertyGenerator 类实际上做了什么?
【问题讨论】:
标签: java json rest jackson jax-rs