Spring Boot Rest服务Angular

时间:2018-10-08 13:14:21

标签: spring angular rest spring-boot

我在前端有一个应用程序,我使用angular,后端使用Spring Boot。 在我的前端,我必须上传一个在表中插入数据的CSV文件。 所以我将数据发送到保存它的后端。 我的问题:我有一个类Individus与@OneToMany关系到其他类,如comptes。因此,当我尝试通过此Rest服务获取所有个人:http://localhost:8080/api/individus时,我遇到了解析json数据错误。

at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155) ~[jackson-databind-2.9.6.jar:2.9.6]
at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:145) ~[jackson-databind-2.9.6.jar:2.9.6]
at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:107) ~[jackson-databind-2.9.6.jar:2.9.6]
at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:25) ~[jackson-databind-2.9.6.jar:2.9.6]
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:727) ~[jackson-databind-2.9.6.jar:2.9.6]

这是我的个人课:

@Entity 

公共类Individu实现了可序列化的{

@Id
private String nui;
private int civility; 
private String lastName;
private String useName;
private String firstName;
@Temporal(TemporalType.DATE)
@JsonFormat(pattern="dd/MM/yyyy")
private Date birthDate;
private String birthPlace;
private String birthCountry;
private String birthCountryLib;
private String nationality;
@OneToMany(mappedBy="individu", fetch = FetchType.LAZY)
private Collection<Compte> comptes;
@OneToMany(mappedBy="individu", fetch = FetchType.LAZY)
private Collection<Adresse> adresses;
@OneToMany(mappedBy="individu", fetch = FetchType.LAZY)
private Collection<Contact> contacts;
@OneToMany(mappedBy="individu", fetch = FetchType.LAZY)
private Collection<Iban> ibans;ode here

有人对我有解决方案吗?

2 个答案:

答案 0 :(得分:2)

您没有提供足够的堆栈跟踪信息来显示实际错误是什么,但我怀疑您正在遇到圆形图问题,因为Individu类的集合中的对象(例如Compte,Ardresse )可能拥有对父Individu实例的引用。

在这种情况下,解决方案是在子代对父代的引用中添加@JsonIgnore批注。这很可能是子级中当前使用@ManyToOne批注标记的属性。

答案 1 :(得分:0)

这是另一种解决方案

public class Produit{.....
@ManyToOne(optional=false,fetch=FetchType.LAZY)
@JsonBackReference
private Category category;....}


public class Category{....
@OneToMany(fetch=FetchType.LAZY,mappedBy="category")
@JsonManagedReference
private Collection<Produit> produits;....}