Аннотации Джексона не работают над отношениями ManyToMany: бесконечный цикл - PullRequest
0 голосов
/ 13 мая 2018

У меня возникла проблема с преобразованием сущности в JSON.Этот объект имеет отношение @ManyToMany с другим объектом, и аннотации не работают (@ JsonManagedReferenced / @ JsonBackReference, @JsonIgnore, @JsonIgnoreProperties, @JsonIdentityInfo).Они работают для других отношений в других сущностях (но не для многих).

Моя первая сущность:

    @Entity
    @JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id")
    public class Intervention implements Serializable {

    @Id
    private Integer id;
    @ManyToMany(cascade = CascadeType.ALL, mappedBy = "interventionList")
    private List<Employee> employeeList = new ArrayList<>();

    public Intervention() {
        }

// getters and setters 
}

Моя вторая:

@Entity
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id")
public class Employee implements Serializable {

    @Id
    private Integer id;

    @JoinTable(name = "employee_intervention", joinColumns = {
        @JoinColumn(name = "employee_id", referencedColumnName = "id")}, inverseJoinColumns = {
        @JoinColumn(name = "intervention_id", referencedColumnName = "id")})
    @ManyToMany
    private List<Intervention> interventionList = new ArrayList<>();

    public Employee() {


     }

// getters and setters 
}

Здесь, Я использую @JsonIdentityInfo, но я попробовал все аннотации, которые я упоминал ранее.

Я получаю эту ошибку:

    Grave:   Generating incomplete JSON
Avertissement:   StandardWrapperValve[jersey-servlet]: Servlet.service() for servlet jersey-servlet threw exception
java.lang.StackOverflowError
    at org.eclipse.yasson.internal.serializer.ObjectSerializer.serializeInternal(ObjectSerializer.java:59)
    at org.eclipse.yasson.internal.serializer.AbstractContainerSerializer.serialize(AbstractContainerSerializer.java:60)
    at org.eclipse.yasson.internal.serializer.AbstractContainerSerializer.serializerCaptor(AbstractContainerSerializer.java:91)
    at org.eclipse.yasson.internal.serializer.ObjectSerializer.marshallProperty(ObjectSerializer.java:92)
    at org.eclipse.yasson.internal.serializer.ObjectSerializer.serializeInternal(ObjectSerializer.java:59)
    at org.eclipse.yasson.internal.serializer.AbstractContainerSerializer.serialize(AbstractContainerSerializer.java:60)
    at org.eclipse.yasson.internal.serializer.AbstractContainerSerializer.serializerCaptor(AbstractContainerSerializer.java:91)
    at org.eclipse.yasson.internal.serializer.CollectionSerializer.serializeInternal(CollectionSerializer.java:76)
    at org.eclipse.yasson.internal.serializer.CollectionSerializer.serializeInternal(CollectionSerializer.java:35)
    at org.eclipse.yasson.internal.serializer.AbstractContainerSerializer.serialize(AbstractContainerSerializer.java:60)

    ...

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...