2011-03-18 26 views
6

Estoy tratando de crear una aplicación que será parcialmente dependiente del Departamento de censo TIGRE/Líneas de archivos de forma de datos, que tienen un diseño de registro define aquí:APP y el patrón decorador

http://www.census.gov/geo/www/tiger/tgrshp2010/TGRSHP10AA.pdf

Mi idea es utilizar el patrón Decorator para tener una clase de entidad base con los campos comunes a todos los tipos de datos, luego extenderla a través del patrón de decorador para los tipos de entidades individuales (estados, condados, distritos congresionales, etc.). Sin embargo, planeo usar Google App Engine para el alojamiento, así que tengo que hacer esto a través de JDO o JPA. Preferiría mucho JPA.

¿Puedo hacer un mapa de un objeto decorado? Mi idea es que la clase de entidad base se anotaría con @Entity, luego las extensiones contendrían los campos asignados específicos del objeto decorado. Como el almacén de datos de GAE NO es un RDBMS, creo que puedo salirse con la suya.

+0

El enlace parece estar roto para mí ATM, pero intentaré dar algunos consejos. La forma en que almacene los datos en el Datastore de Google depende en gran medida de cómo planea modelarlo en su aplicación y de cómo planea consultar los datos. Cuanto más simple sea tu modelo de datos, más fácil será. Me pareció un poco molesto establecer las relaciones de entidades correctas usando JPA en Datastore la última vez que lo intenté. También debe tener en cuenta cómo JPA le dirá al Almacén de datos que almacene los datos. ¿Las entradas estarán en el mismo grupo de Entidades? Estas decisiones afectarán lecturas, escritura/transacciones y frecuencia de escritura. – aglassman

Respuesta

4

Si usa el patrón Decorador, significa que usa la composición. Entonces, lo que puede hacer es marcar la clase que desea decorar como y en su decorador, marque su clase decorada como Embedded.

Si prefiere usar la herencia, su clase base no es una entidad ya que es algo que desea heredar y no almacenar es la base de datos. Para crear una clasificación básica que se heredará de otras entidades reales, hay una anotación para eso: @MappedSuperclass

De acuerdo con GAE docs, ambos son compatibles.

Espero que ayude!

Cuestiones relacionadas