アノテーション Jacson をエンティティに追加しましたが、json 無限ループの問題は解決しませんでした。別の解決策は何ですか?たぶん、別の注釈を追加します。テーブルから選択してリストに転送しても問題ありません。すべて正常に動作します。
import org.codehaus.jackson.annotate.JsonManagedReference;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
@Entity
@Table(name = "Question")
@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
public class Question implements Serializable{
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
// @GeneratedValue
private int id;
private String question;
@JsonManagedReference("question-answers")
@OneToMany(mappedBy="question")
// @Transient
private List<Answer> answers;
// getters and setters
@Entity
@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
public class Answer implements Serializable{
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
// @GeneratedValue
private int id;
private String answer;
private byte isCorrect;
@ManyToOne(optional = false)
// @JoinColumn(name="QuestionID")
@JsonBackReference("question-answer")
@JsonIgnore
// @Transient
// @ManyToOne
@JoinColumn(name="QuestionID")
private Question question;
コントローラ
@RequestMapping("/home")
public @ResponseBody List<Question> home(){
List<Question> qu = questionService.getQuestions();
return qu;
ページで json の無限ループを受け取ります。ダオ
public List<Question> getQuestions() {
// TODO Auto-generated method stub
return sessionFactory.getCurrentSession().createQuery("from Question").list();
}
では、また。通常の作業jsonからcodで何を変更する必要がありますか?
どうも!