# RMI Hibernate Problem



## rbrose (17. Nov 2009)

Hallo,

ich habe eine Client (Swing) – Server Applikation. Auf der Server Applikation läuft die Datenbank. Die Datenbank wird per Hibernate abgefragt.

Jetzt will ich die Klassen die per Hibernate ausgelesen worden auf der Client Seite auswerten. Dafür brauche ich die Hibernate Klasse. Das heißt ich brauche alle Hibernate JAR's auch auf der Client-Seite.
Das ist blöd, da der User wieder mehr MB runterladen muss per Webstart für die Hibernate jars.

Wie kann man das eleganter Lösen?


Danke.


----------



## tfa (17. Nov 2009)

Hierfür gibt es das Entwurfsmuster der Tranfer Objekte (TO oder DTO): Core J2EE Patterns - Transfer Object

Deine Daten werden über extra Objekte, die keine Abhängkeiten von Hibernate haben, an den Client übertragen.

Ob das allerdings eleganter ist, muss jeder für sich entscheiden.


----------



## rbrose (17. Nov 2009)

In anderen Worten, ich habe eine extra Klasse die getter,setter Methode hat, die befühle ich mit den Daten aus dem Hibernate Objekt und schicke per RMI an den Client.
Der Client hat diese Klasse auch und dann damit Arbeiten.

So habe ich es auch gemacht, dachte aber ich verliere extra Performance da ich das Hibernate Objekt ins extra "Transfer" Objekt kopieren muss.


Danke!


----------



## maki (17. Nov 2009)

> So habe ich es auch gemacht, *dachte* aber ich verliere extra Performance da ich das Hibernate Objekt ins extra "Transfer" Objekt kopieren muss.


"gedacht" oder "geraten"?

Performance ist nicht das Problem in so einem Fall, sondern wie man den Aufwand des erstellen & zurückwandelns von TOs minimieren kann.
Dafür gibt es zB. Dozer: Dozer - Dozer


----------



## tfa (17. Nov 2009)

Klar kostet das Performance. Außerdem muss das erst programmiert werden, es kann fehlerhaft sein und daher Probleme verursachen. Wenn sich was ändert, muss es angepasst werden, usw.
Was stören dich die paar MB download? Das ist doch fast nichts. Schlimmer ist die Abhängigkeit von einem bestimmten Produkt. Obwohl das auch kein großes Thema ist, da man ja POJOs verwenden kann. Ich schicke Hibernate-POJOs an meine Clients und habe keine Probleme damit.


----------

