Was ist eine gute Strategie für die Umwandlung von JPA-Entitäten in erholsame Ressourcen?

Restful-Ressourcen verfügen nicht immer über eine Eins-zu-Eins-Zuordnung zu Ihren JPA-Entitäten. Aus meiner Sicht gibt es einige Probleme, die ich zu lösen versuche:

Wenn eine Ressource Informationen enthält, die von mehr als einer Entität ausgefüllt und gespeichert werden.Wenn eine Entität mehr Informationen enthält, die Sie als Ressource senden möchten. Ich könnte einfach Jacksons benutzen@JsonIgnore aber ich hätte noch ausgabe 1, 3 und 4.Wenn eine Entität (wie ein aggregierter Stamm) verschachtelte Entitäten hat und Sie einen Teil ihrer verschachtelten Entitäten einbeziehen möchten, jedoch nur bis zu einem bestimmten Verschachtelungsgrad als Ressource.Wenn Sie ein Teil einer Entität als Teil einer übergeordneten Entität ausschließen möchten, aber ein separates Teil als Teil einer anderen übergeordneten Entität ausschließen möchten.Gestrahlte Zirkelverweise (ich habe meistens damit gearbeitet)JSOG mit Jacksons@JsonIdentityInfo)

Mögliche Lösungen: Der einzige Weg, wie ich mir vorstellen könnte, all diese Probleme zu lösen, wäre, eine ganze Reihe von "Ressourcen" -Klassen zu erstellen, die Konstruktoren enthalten, die die erforderlichen Entitäten für die Erstellung der Ressource benötigen und die erforderlichen Getter und Setter für diese Ressource bereitstellen . Ist das übertrieben?

Um 2, 3, 4 und 5 zu lösen, könnte ich einfach einige Vor- und Nachbearbeitungen an der tatsächlichen Entität vornehmen, bevor ich sie an Jackson sende, um mein Pojo in JSON zu serialisieren oder zu deserialisieren, aber das behebt Problem 1 nicht.

Dies sind alles Probleme, von denen ich denke, dass andere auf sie gestoßen sind, und ich bin gespannt, welche Lösungen andere Leute finden. (Ich verwende derzeit JPA 2, Spring MVC, Jackson und Spring-Data, bin aber offen für andere Technologien.)

Antworten auf die Frage(4)

Ihre Antwort auf die Frage