Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Jackson从列表到Json无限循环_Java_Sql_Hibernate_Spring Mvc_Entity - Fatal编程技术网

Java 使用Jackson从列表到Json无限循环

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`

我有两张桌子的问题和答案。问题表2中的字段id和问题。在答案4字段中,id、QuestionID为FK to Question、Answer和isCorrect。很简单,一个家庭

我在这个表上创建了两个实体。HQL查询后

毫无疑问

当尝试从列表转换为Json时,我收到无穷循环。使用jackson和annotate@JsonIgnore没有帮助。还添加了@JsonManagedReference和@JsonBackReference,同样的问题

问题:

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 { ... }