Well, we recommend using the DTO strategy for this. Even with @JSONManagedReference and
@JSONBackReference annotateds on JPA entities, you would run into some issues, especially
when updating the entities via a HTTP PUT. That's why we recommend using DTOs.
For now, with the DTO strategy, Forge supports creation of a 2-level DTO hierarchy where
no cycles will be created in the DTO graph, thus eliminating the need for Jackson
annotations, while supporting updates to the entities in a limited form. For every DTO
that it creates, Forge will traverse the corresponding JPA entity and map it's
properties; it will also traverse the relationships in the JPA entities and create nested
DTOs to represent the related entities. It does not however traverse any further,
primarily to break any cyclic or bi-directional relationships. The constructed DTOs
contain logic to assemble the JPA entity back from the contents of the DTO, and also
update any object references (so it gets past the problems you run into with some of the
Jackson annotations); it does not contain logic to update properties of referenced JPA
entities (say you delink B from A, then the resource for A will have no issues in
delinking the objects, but if you update B and expect the REST resource for A to
transitively update B, then this is not supported).
If you need additional strategies to be built, we can help with that.
Posted by forums
Original post:
https://developer.jboss.org/message/911686#911686