2009-07-02 9 views
5

Ich habe ein Problem. Ich möchte Document-Objekt erstellen, und ich hätte gerne eine Benutzereigenschaft mit com.google.appengine.api.users.User Typ (auf GAE-Docs-Website, sagten sie, wir sollten dieses Objekt anstelle von E-Mail-Adresse oder verwenden etwas anderes, weil dieses Objekt wahrscheinlich einzigartig sein wird). Aber jetzt kann das Objekt nicht von GWT kompiliert werden, weil ich die Quelle für dieses Objekt nicht habe. Wie kann ich das Problem lösen?GWT + GAE/J, sendet JDO-Objekte durch die Leitung, aber wie?

Ich suchte nach Dokumenten über DTOs, aber ich erkannte, dass das nicht das beste Muster ist, das ich verwenden sollte.

Was empfehlen Sie?

Vielen Dank für Ihre Hilfe!

Grüße, Bálint Kriván

Antwort

3

DTOs für Objekte mit com.google.appengine.api.users.User zu vermeiden, in dir wahrscheinlich die Arbeit von http://www.resmarksystems.com/code/ verwenden Er hat Wrapper für die Core-GAE-Datentypen (Key, Text, ShortBlob, Fleck bauen , Link, Benutzer). Ich habe es mit Datastore.Text getestet und es hat gut funktioniert.

+0

Danke für die Führung. Vielleicht bin ich auf der Suche nach :) Übrigens bin ich immer noch nicht sicher, ob ich DTOs benutzen soll oder nicht;) –

2

Es gibt eine große Debatte darüber, ob Sie auf dem Client-Objekte von dem Server wiederverwendet werden können sollten. Die Wiederverwendung funktioniert in realen Anwendungen jedoch selten. Daher empfehle ich generell, reine Java-Objekte zu erstellen, in die Sie Ihre Daten kopieren, um sie an den Client zu senden. Auf diese Weise können Sie die Daten an die Anforderungen des Kunden anpassen und Fallstricke vermeiden, bei denen Sie versehentlich vertrauliche Informationen über die Leitung senden.

In diesem Fall würde ich empfehlen, dass Sie ein separates Objekt erstellen, das über die Leitung gesendet werden soll. Übrigens, wenn Sie das AppEngine SDK für Java (http://code.google.com/appengine/downloads.html) haben, enthält es eine Demo-Anwendung, die ich gemacht habe (sticky), die diese Technik demonstriert.

+0

Hallo! Danke für Ihre Antwort! Ich habe Ihre Quelle überprüft, es sieht vielversprechend aus, aber ich habe festgestellt, dass Sie direkt die Datastore-API verwenden. Ist es nicht zu Implementierungs-detaillierte Verwendung? Vielleicht, wenn ich JDO verwenden würde, wäre es ein bisschen abstrakter (wenn ich meine Anwendung auf anderen Dienst als GAE bereitstellen würde), aber es stört mich ein bisschen, dass ich "Duplizierung" habe, natürlich erhalte ich mehr Kontrolle darüber, welche Informationen ich wirklich übermittele. Ich werde darüber nachdenken, aber wahrscheinlich werde ich DTOs wählen. –

0

Ich hatte die gleiche Frage, Ihre Antwort ist interessant, aber ich bin immer traurig, zweimal Daten zu kopieren ... Plus, wenn Ihr Dao die Daten bekommt, müssen Sie alle Ergebnisse analysieren, um sie zu kopieren reines Java-Objekt, oder? Es scheint eine schwere Operation zu sein. Was ist deine Meinung zu dieser Frage?

1

Diese question behebt auch das Problem: Es verbindet sich mit einer halb-funktionierenden Lösung für automatisches Erstellen Ihrer persistenten Objekte gwt-rpc kompatibel.

Verwandte Themen