Java 使用Jackson从列表到Json无限循环
我有两张桌子的问题和答案。问题表2中的字段id和问题。在答案4字段中,id、QuestionID为FK to Question、Answer和isCorrect。很简单,一个家庭 我在这个表上创建了两个实体。HQL查询后 毫无疑问 当尝试从列表转换为Json时,我收到无穷循环。使用jackson和annotate@JsonIgnore没有帮助。还添加了@JsonManagedReference和@JsonBackReference,同样的问题 问题:Java 使用Jackson从列表到Json无限循环,java,sql,hibernate,spring-mvc,entity,Java,Sql,Hibernate,Spring Mvc,Entity,我有两张桌子的问题和答案。问题表2中的字段id和问题。在答案4字段中,id、QuestionID为FK to Question、Answer和isCorrect。很简单,一个家庭 我在这个表上创建了两个实体。HQL查询后 毫无疑问 当尝试从列表转换为Json时,我收到无穷循环。使用jackson和annotate@JsonIgnore没有帮助。还添加了@JsonManagedReference和@JsonBackReference,同样的问题 问题: CREATE TABLE`question`
CREATE TABLE`question`(
`ID`INT(11)非空自动增量,
`问题'VARCHAR(200)不为空,
主键(`ID`)
)
答复
实体
@实体
@表(name=“问题”)
公共类问题实现了可序列化{
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
私有int-id;
私有字符串问题;
@JsonManagedReference(“问题-答案”)
@OneToMany(mappedBy=“问题”)
私人名单答案;
…接受者/接受者
@凌驾
公共字符串toString(){
返回“问题[id=“+id+”,问题=“+Question+”,答案=”
+答案+“]”;
}
应答实体
@实体
公开课答案{
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
//@GeneratedValue
私有int-id;
私有字符串应答;
私有字节是正确的;
@多通(可选=假)
@JoinColumn(name=“QuestionID”)
@JsonBackReference(“问题-答案”)
私人问题;
…接受者/接受者
@凌驾
公共字符串toString(){
返回“Answer{id:+id+”,Answer:+Answer+,isCorrect:
+isCorrect+“}”;
}
康罗尔
@RequestMapping(“/home”)
@杰索尼奥雷
public@ResponseBody List home(){
List qu=questionService.getQuestion();
还曲;
}
如何正确创建表或如何正确创建实体?可能还有其他错误
Thx!这也添加了@JsonManagedReference和@JsonBackReference,同样的问题让我感到惊讶
您可以使用@JsonIdentityInfo
让Jackson
为它序列化的每个对象分配id。如果这些对象中的一个再次出现,它将使用以前分配的id来引用它
注释你的类
@Entity
@JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class)
public class Answer { ... }
您可以使用许多对象生成器
@Entity
@JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class)
public class Answer { ... }