используя @JsonIdentityInfo или @JsonManagedReference, @JsonBackReference заставляет мое свойство в классе игнорироваться при разборе в него - PullRequest
0 голосов
/ 04 октября 2018

У меня были проблемы с циклической зависимостью в спящем режиме. Вот класс ниже:

   @Entity
    @JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="id")
    public class Task extends DefaultEntity{


        @ManyToOne
        @JoinColumn(name = "cloth_model_id")
        //@JsonIgnore
        private ClothModel clothModel;

        private String details;

        private boolean completed;

        @ManyToOne
        @JoinColumn(name = "employee_id")
        private Employee employee;
}




   @Entity
@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="id")
public class ClothModel extends DefaultEntity {

    private ClothingType clothingType;

    private int quantity;

    private double amount;

    @Transient
    private String modelStructure;

    private String savedUrl;


    @Transient
    //@JsonManagedReference
    private List<Task> tasks = new ArrayList<>();
}



 @MappedSuperclass
public class DefaultEntity implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(columnDefinition = "serial")
    private long id;

    @Column(name = "Time",columnDefinition= "TIMESTAMP WITH TIME ZONE")
    @Temporal(TemporalType.TIMESTAMP)
    private Date dateCreated;

я удалил методы получения и установки, поэтому код не будет слишком большим

Когда я применяю @JsonIdentityInfo или @JsonManagedReference, @JsonBackReference как к ClothModel.class, так и к Task.class, я замечаю, что в свойстве fabricModel в классе Task.class будет игнорироваться при попытке написать в него JSON, он действует как я использую аннотацию @Jsonignore.Почему это так и почему нет 100% исправления для круговой рекурсии Hibernate.

...