Re: URLResponse from Restcontroller with Hibernate circular relationships

Yahoo <[email protected]> Fri, 07 Mar 2014 10:15:33 +0100
Newsgroups gmane.text.xml.cocoon.user
Message-ID <[email protected]>
Hello Greg,
Your solution works fine.
With a lot of Lazy Loading and circular relations
I have the idea to include the decision which relations should be 
really  loaded
and which should be nulled
in the Dao.Do you know if there is already a professional solution for 
this usage?

Am 04.03.2014 23:47, schrieb gelo1234:
>
> Another kind of "hack" (if you cannot modify entity sources and they 
> are not external .xml files) would be setting all child objects' 
> parent references to null _before_ serializing that data.
>
> Lets say you got: Author and Book entites with One-To-Many relationship.
>
> You retrieve the entities from db and _before_ URLResponse, you modify
> all Books entities with null reference to parent(Author) entity:
>
>
> List<Author> authors = hibernateDAO.getAllAuthors();
>
> // make sure hibernate session is closed and authors objects are 
> _detached_
> // with full data structure -> FetchType.EAGER
>
> for (Author author: authors) {
>       List<Book> books = author.getBooks();
>       for (Book book: books)
> book.setAuthor(null);
> }
>
> Now you can safely call URLResponse with authors (they don't contain 
> any circular references anymore).
>
> Greetings,
> Greg
>
>
>
> 2014-03-04 23:00 GMT+01:00 gelo1234 <[email protected] 
> <mailto:[email protected]>>:
>
>     Hi
>
>     Can you debug where exactly a problem with circular references
>     exists ?
>     Is it during serialization of your data ? StringTemplate? IOUtils?
>
>     Many serialization techniques/libs do have problems with such
>     references, be it JAXB or GSON. For JAXB you can setup @Transient
>     annotation.
>
>     How about a quick fix, that removes one side of relationship in
>     Hibernate entities making it uni-directional instead of
>     bi-directional e.g. reverse side ?
>
>     Greetings,
>     Greg
>
>
>
>     2014-03-04 22:29 GMT+01:00 Yahoo <[email protected]
>     <mailto:[email protected]>>:
>
>         I am using Hibernate 4.1.8-Final and cocoon 3.0.0-beta-1-SNAPSHOT.
>         But why you ask?
>         Am 03.03.2014 08:09, schrieb Francesco Chicchiriccò:
>
>             On 03/03/2014 04:36, Yahoo wrote:
>
>                 I  am using cocoon RestController to present my
>                 Hibernate Mysql data in pdf files.
>                 The Hibernate structure has cirular relationships, so
>                 when I give the structure to the URLResponse there are
>                 endless StringBuilder calls.Do you have an idea how to
>                 solve this problem.One idea would be to present the
>                 data in an non Hibernate bean without cicular
>                 relationships. But may be there is an opportunity to
>                 avoid new beans.
>
>
>             Hi,
>             such problems arise every time JPA (or other persistence
>             frameworks) entities are published (via REST in your case)
>             without any transformation (the DTO pattern): I am afraid
>             there is any cleaner solution than converting your
>             Hibernate entities into something simpler.
>
>             BTW: which version are you using?
>
>             Regards.
>
>
>
>         ---------------------------------------------------------------------
>         To unsubscribe, e-mail: [email protected]
>         <mailto:[email protected]>
>         For additional commands, e-mail: [email protected]
>         <mailto:[email protected]>
>
>
>