Hallo,
ich wusste nicht, ob Data Tier oder SOA, drum hab ichs zu allgemein.
Ich möchte Zugriffe auf eine Datenbank über einen Webservice kapseln. Der Webservice nutzt serverseitig JPA um mit der Datenbank zu kommunizieren. Die Entity-Klassen, die dazu erstellt werden, sind auch die, die über den Webservice verschickt werden. Daher zunächst mal: Ist das eine gute Idee? Ich wollte es nämlich vermeiden, noch ein separates Modell zu erstellen, weil das ja eh fast nur kopiert wäre. Außerdem wäre die Konvertierung DB-Modell -> XML-Modell ja nochmal aufwändig.
Weiterhin bekomme ich Probleme, wenn es um Objektbeziehungen geht und davon gibt es reichlich. Im konkreten Fall habe ich eine ManyToMany-Beziehung. Der Owner der Beziehung soll über den Webservice angefragt werden können. Wird ein solches Objekt dann über den Webservice verschickt, wird die ManyToMany-Beziehung immer aufgelöst. Ob der FetchType LAZY oder EAGER ist, spielt keine Rolle - spätestens wenn die Objekte auf dem Server serialisiert werden, findet die Auflösung ja statt (und bei LAZY gibts noch ganz andere Probleme, weil die Transaktion schon weg ist: [c]failed to lazily initialize a collection of role: pkg.Category.items, no session or session was closed[/c]). Das spricht ja dann doch wieder für ein getrenntes Model; das Nachladen der referenzierten Daten sollte auch über den Webservice erst nachträglich erfolgen können. Wie geht man einen solchen Fall am sinnvollsten an?
Weil DIA mein Lieblingsprogramm ist, habe ich mal ein kleines Bild dazu gemalt. In dem Fall ist das Problem, dass ich die Items einer Category gerne auch lazy über den Webservice behandeln möchte...
Vielleicht kann mich ja jemand erleuchten.
Danke schonmal
mK
ich wusste nicht, ob Data Tier oder SOA, drum hab ichs zu allgemein.
Ich möchte Zugriffe auf eine Datenbank über einen Webservice kapseln. Der Webservice nutzt serverseitig JPA um mit der Datenbank zu kommunizieren. Die Entity-Klassen, die dazu erstellt werden, sind auch die, die über den Webservice verschickt werden. Daher zunächst mal: Ist das eine gute Idee? Ich wollte es nämlich vermeiden, noch ein separates Modell zu erstellen, weil das ja eh fast nur kopiert wäre. Außerdem wäre die Konvertierung DB-Modell -> XML-Modell ja nochmal aufwändig.
Weiterhin bekomme ich Probleme, wenn es um Objektbeziehungen geht und davon gibt es reichlich. Im konkreten Fall habe ich eine ManyToMany-Beziehung. Der Owner der Beziehung soll über den Webservice angefragt werden können. Wird ein solches Objekt dann über den Webservice verschickt, wird die ManyToMany-Beziehung immer aufgelöst. Ob der FetchType LAZY oder EAGER ist, spielt keine Rolle - spätestens wenn die Objekte auf dem Server serialisiert werden, findet die Auflösung ja statt (und bei LAZY gibts noch ganz andere Probleme, weil die Transaktion schon weg ist: [c]failed to lazily initialize a collection of role: pkg.Category.items, no session or session was closed[/c]). Das spricht ja dann doch wieder für ein getrenntes Model; das Nachladen der referenzierten Daten sollte auch über den Webservice erst nachträglich erfolgen können. Wie geht man einen solchen Fall am sinnvollsten an?
Weil DIA mein Lieblingsprogramm ist, habe ich mal ein kleines Bild dazu gemalt. In dem Fall ist das Problem, dass ich die Items einer Category gerne auch lazy über den Webservice behandeln möchte...
Vielleicht kann mich ja jemand erleuchten.
Danke schonmal
mK