2009-07-02 13 views
5

Tengo un problema. Me gustaría crear un objeto de documento, y me gustaría tener una propiedad de usuario con com.google.appengine.api.users.User tipo (en el sitio de documentación de GAE, dijeron que deberíamos usar este objeto en lugar de la dirección de correo electrónico o algo más, porque este objeto probablemente se verá mejorado por ser único). Pero ahora el objeto no puede ser compilado por GWT, porque no tengo la fuente para ese objeto. ¿Cómo puedo resolver el problema?GWT + GAE/J, enviando objetos JDO a través del cable, pero ¿cómo?

Estaba buscando documentos sobre DTO, pero me di cuenta de que tal vez ese no es el mejor patrón que debo usar.

¿Qué me recomiendas?

¡Muchas gracias por su ayuda!

Saludos, Bálint Krivaň

Respuesta

3

para evitar dtos de objetos con com.google.appengine.api.users.User interior es probable que pueda utilizar el trabajo de http://www.resmarksystems.com/code/ Ha construcción de contenedores para los tipos de datos básicos (GAE clave, texto, ShortBlob, Blob , Enlace, Usuario). Lo probé con datastore.Text y funcionó bien.

+0

Gracias por guiarme. Tal vez eso es lo que estaba buscando :) Por cierto, todavía no estoy seguro de usar o no usar DTO;) –

2

Hay un gran debate acerca de si debe ser capaz de reutilizar objetos desde el servidor en el cliente. Sin embargo, la reutilización rara vez funciona bien en aplicaciones reales, por lo que generalmente recomiendo crear objetos java puros en los que copie los datos para enviarlos al cliente. Esto le permite adaptar los datos a lo que necesita en el cliente y evita riesgos en los que accidentalmente envía información confidencial por cable.

Por lo tanto, en este caso, le recomendaría que cree un objeto separado para enviar a través del cable. Por cierto, si tiene el SDK de AppEngine para Java (http://code.google.com/appengine/downloads.html), incluye una aplicación de demostración que hice (adhesivo) que demuestra esta técnica.

+0

¡Hola! Gracias por su respuesta! He revisado su fuente, parece prometedor, pero me di cuenta de que está usando directamente la API de Datastore. ¿No es demasiado el uso detallado de la implementación? Tal vez si utilizara JDO, sería un poco más abstracto (si desplegara mi aplicación en otro servicio que GAE), pero me molesta un poco, que tengo "duplicación", por supuesto, gano más control sobre qué información realmente envío. Lo pensaré, pero probablemente elijo DTOs. –

0

Tuve la misma pregunta, tu respuesta es interesante, pero siempre me entristece copiar dos veces los datos ... Además, cuando tu dao obtenga los datos, deberás analizar todos los resultados para copiarlos al objeto puro de java, ¿no es así? Parece ser una operación pesada. ¿Cuál es su opinión sobre esas preguntas?

1

este question también resuelve el problema: Se vincula a una solución semi viable para hacer automáticamente compatibles sus objetos persistentes gwt-rpc.

Cuestiones relacionadas