-
1. Re: Any recommended strategy for Angular/REST scaffolds with JPA bidirectional relationships
gastaldi Nov 26, 2014 3:00 PM (in response to mcasperson)One strategy is to create DTOs with the data that you want to be JSONified. We use that strategy in Forge.
Vinnet Reynolds may be able to tell more about it.
-
2. Re: Any recommended strategy for Angular/REST scaffolds with JPA bidirectional relationships
vineet.reynolds Nov 27, 2014 2:38 AM (in response to mcasperson)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.
-
3. Re: Any recommended strategy for Angular/REST scaffolds with JPA bidirectional relationships
mcasperson Nov 27, 2014 3:13 PM (in response to vineet.reynolds)So I may have been running rest-generate-endpoints-from-entities instead of letting the Angular plugin generate these for me (I just looked at the instructions at http://forge.jboss.org/addon/org.jboss.forge.addon:angularjs again and saw it doesn't ask you to run rest-generate-endpoints-from-entities).
I'll try again following the instructions more closely and check the results.
-
4. Re: Any recommended strategy for Angular/REST scaffolds with JPA bidirectional relationships
vineet.reynolds Dec 3, 2014 5:06 AM (in response to mcasperson)Ah, sorry about that (and for the late reply). The instructions are a bit out of date. REST resource generation is now optional in the angularjs addon. It gets activated with the generateRestResources flag, like so:
scaffold-generate --provider AngularJS --targets com.acme.model.Customer --generateRestResources --generator ROOT_AND_NESTED_DTO ....
-
5. Re: Any recommended strategy for Angular/REST scaffolds with JPA bidirectional relationships
maurizio.giacomelli Nov 6, 2016 4:05 PM (in response to mcasperson)Try with
@JsonIdentityInfo(
generator = ObjectIdGenerators.PropertyGenerator.class,
property = "id")
at the top of declaration of all the 2 class of relations. (this may improve performance if you use lazy or eager mapping)
...or if you don't need al data for both relations entity
you can use
@JsonIgnore on the mapping of your type(es:"many to one")
you can found many example in google if you use my keywords,