Spring 已经有了身份证的POJO
我有两门课:工作课和客户课。一个客户可以有许多作业。这两类作业如下:-Spring 已经有了身份证的POJO,spring,hibernate,jpa,spring-boot,jackson,Spring,Hibernate,Jpa,Spring Boot,Jackson,我有两门课:工作课和客户课。一个客户可以有许多作业。这两类作业如下:- @Entity @JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class,property="jobId", scope = Job.class) public class Job { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "job_id") pr
@Entity
@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class,property="jobId", scope = Job.class)
public class Job {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "job_id")
private long jobId;
@ManyToOne
private Client client;
public Client getClient() {
return client;
}
public void setClient(Client client) {
this.client = client;
}
@Entity
@JsonIdentityInfo(
generator = ObjectIdGenerators.PropertyGenerator.class,
property = "clientId",scope = Client.class)
public class Client {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long clientId;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "client")
@Transient
private Collection<Job> jobs;
我得到的错误是:-
Could not read JSON document: Already had POJO for id (java.lang.Long) [[ObjectId: key=1, type=com.fasterxml.jackson.databind.deser.impl.PropertyBasedObjectIdGenerator, scope=java.lang.Object]]
有人能帮我一下吗?它抛出了这个错误,因为您的JsonIdentityInfo注释说您的XML中已经有一个clientId为1的客户端实例。请参阅或建议仅使用ID,而不是引用中的完整对象。我已在同一json中的两个不同位置发送了ID为1的客户端。这两个客户端将保存在数据库中的两个不同的表中,上面的操作对于不同的id很好。当json中两个客户端的id都为1时,就会出现此问题。它抛出此错误是因为您的JsonIdentityInfo注释,说您的XML中已经有一个clientId为1的客户端实例。请参阅或建议仅使用ID,而不是引用中的完整对象。我已在同一json中的两个不同位置发送了ID为1的客户端。这两个客户端将保存在数据库中的两个不同的表中,上面的操作对于不同的id很好。当json中两个客户端的id都为1时,就会出现这个问题。
Could not read JSON document: Already had POJO for id (java.lang.Long) [[ObjectId: key=1, type=com.fasterxml.jackson.databind.deser.impl.PropertyBasedObjectIdGenerator, scope=java.lang.Object]]