2012-01-17 65 views
0

假设我有以下使用Hibernate的POJO。转换双向关系(无限循环)

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在数据检索时防止无限循环。我的应用程序架构使用两种不同类型的传输对象。一个用于后端,另一个用于前端目的。在转换器中间转换它们。在这里,我遇到了早些时候阻止的问题。

一个解决方案可能会改变关系到单向。但是有没有另一种解决方案可以让我使用双向方法?

回答

0

解决办法有两个:

  • 不使用的DTO,并转移Hibernate的实体本身。他们是POJO,并且可以序列化,如果你让他们实现Serializable接口
  • 修复转换代码。要么在DTO中使关联单向,要么确保正确转换双向关联。 Hibernate可以做到,所以你应该也可以做到这一点。
+0

如果我知道如何去做,我不会问这里:-) – Sven 2012-01-17 15:08:50

+0

这不是你问的。你问是否有其他的解决方案,而不是双向关联。如果您希望我们告诉您如何解决您的转换代码,请告诉我们转换代码。 – 2012-01-17 15:10:58