转换双向关系(无限循环)

时间:2012-01-17 14:45:21

标签: hibernate java-ee

假设我跟随POJO使用Hibernate。

public class User {

   private String userName;
   private String name;
   private String surname;
   private List<Blog> blogList;

   //All getters and setters are found here and assume they're generated.
}

public class Blog {
    private String title;
    private String content;
    private User author;
    private Date datePublished;
    private Date dateLastModified;

    //All getters and setters have been generated (by Eclipse or NetBeans)
}

如前所述here Hibernate在数据检索时阻止无限循环。我的应用程序架构使用两种不同类型的传输对象。一个用于后端,一个用于前端用途。在两个转换器的中间翻译它们。在这里,我遇到了早先阻止hibernate的问题。

一种解决方案可能是改变与单向的关系。但是有另一种解决方案可以让我使用双向方法吗?

1 个答案:

答案 0 :(得分:0)

有两种解决方案:

  • 不使用DTO,并自行传输Hibernate实体。它们是POJO,如果使它们实现Serializable接口,则可以序列化
  • 修复转换代码。在DTO中使关联单向,或确保正确转换双向关联。 Hibernate可以做到,所以你也应该能够做到。