Преобразование двунаправленных отношений (бесконечный цикл) - PullRequest
0 голосов
/ 17 января 2012

Допустим, у меня есть следующие 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)
}

Как указано здесь Hibernate предотвращает бесконечные циклы при извлечении данных.Моя архитектура приложения использует два различных типа объектов передачи.Один для внутреннего интерфейса и один для внешнего интерфейса.В середине обоих конвертер переводит их.Здесь я сталкиваюсь с проблемой спящего режима, предотвращенной ранее.

Одним из решений может быть изменение отношения к однонаправленному.Но есть ли другое решение, которое позволяет мне использовать двунаправленный подход?

1 Ответ

0 голосов
/ 17 января 2012

Существует два решения:

  • не использовать DTO и передавать сами объекты Hibernate.Это POJO, и их можно сериализовать, если вы заставите их реализовать интерфейс Serializable
  • , исправляющий код преобразования.Либо сделайте ассоциацию однонаправленной в DTO, либо убедитесь, что конвертируете двунаправленную ассоциацию должным образом.Hibernate может сделать это, поэтому вы должны быть в состоянии сделать это также.
...