Java 使用@JsonIdentityInfo或@JsonManagedReference,@JsonBackReference会在解析类时忽略类中的my属性
我遇到了hibernate循环依赖性问题,以下是此类问题:Java 使用@JsonIdentityInfo或@JsonManagedReference,@JsonBackReference会在解析类时忽略类中的my属性,java,hibernate,spring-boot,jackson-databind,Java,Hibernate,Spring Boot,Jackson Databind,我遇到了hibernate循环依赖性问题,以下是此类问题: @Entity @JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="id") public class Task extends DefaultEntity{ @ManyToOne @JoinColumn(name = "cloth_model_id")
@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(generator=ObjectIdGenerators.IntSequenceGenerator.class,property=“id”)
公共类任务扩展了DefaultEntity{
@许多酮
@JoinColumn(name=“cloth\u model\u id”)
//@杰索尼奥雷
私人服装模型;
私有字符串详细信息;
完成私有布尔运算;
@许多酮
@JoinColumn(name=“employee\u id”)
私人雇员;
}
@实体
@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class,property=“id”)
公共类模型扩展了DefaultEntity{
私人服装类型服装类型;
私人整数数量;
私人双倍金额;
@短暂的
私有字符串模型结构;
私有字符串savedUrl;
@短暂的
//@JsonManagedReference
私有列表任务=新建ArrayList();
}
@映射超类
公共类DefaultEntity实现可序列化{
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
@列(columnDefinition=“serial”)
私人长id;
@列(name=“Time”,columnDefinition=“带时区的时间戳”)
@时态(TemporalType.TIMESTAMP)
创建私人日期;
我删除了getter和setter,因此代码不会太多
当我将@JsonIdentityInfo或@JsonManagedReference、@JsonBackReference应用于ClothModel.class和Task.class时,我注意到在我尝试向其写入JSON时,Task.class中的ClothModel属性将被忽略,这就像我在使用@Jsonignore注释一样。为什么会这样,为什么没有一个合适的100%工作修复程序Hibernate循环递归。你到底想实现什么?因为你提到的注释与你说的完全一样。它们用于阻止任何字段在解析为JSON时序列化。这是一个Jackson问题,与Hibernate无关,不,没有办法使用循环引用并让它们打印某些内容。@Anas我想要o检索具有任务列表的ClothModel,但我无法检索,因为它将导致堆栈溢出error@coladict我只想检索一个包含任务列表的clothModel,这样我就可以将它们解析到我的视图中,但我不能因为循环引用而导致stackoverflow错误。任何关于如何解决此问题的问题都很简单,请决定使用哪种方法h无论父类是什么。在该类中有一个子对象列表。转到子类并删除父类(父类的对象)的引用