我正在尝试创建一个部分依赖于人口普查部门TIGER / Lines数据Shapefile的应用程序,这些文件具有在此定义的记录布局:
http://www.census.gov/geo/www/tiger/tgrshp2010/TGRSHP10AA.pdf
我的想法是使用Decorator模式使基本要素类具有所有数据类型共有的字段,然后通过各个要素类型(州,县,国会区等)的装饰器模式扩展它。但是,我计划使用Google App Engine进行托管,因此我必须通过JDO或JPA来完成此操作。我更喜欢JPA。
我可以映射装饰物吗?我的想法是基本要素类将使用@Entity进行注释,然后扩展将包含特定于装饰对象的映射字段。由于GAE数据存储区不是RDBMS,我认为我可以逃脱它。
答案 0 :(得分:4)
如果使用装饰器模式,则表示您使用合成。所以你可以做的只是将要装饰的类标记为Embeddable,并在装饰器中将装饰的类标记为Embedded。
如果您更喜欢使用继承,那么您的基类不是实体,因为您只想继承它而不是存储本身就是数据库。要创建一个将从其他实体继承的base classe,有一个注释:@MappedSuperclass
根据GAE docs,两者都受到支持。
希望它有所帮助!