WEB开发网
开发学院软件开发Java Google App Engine for Java,第 3 部分: 持久性和... 阅读

Google App Engine for Java,第 3 部分: 持久性和关系

 2009-09-17 00:00:00 来源:WEB开发网   
核心提示: 然而,App Engine for Java 数据持久性并不像纯 Google App Engine 中的持久性那样简单,Google App Engine for Java,第 3 部分: 持久性和关系(2),由于 BigTable 不是一个关系数据库,JDO 和 JPA 的接口出现了一些抽象

然而,App Engine for Java 数据持久性并不像纯 Google App Engine 中的持久性那样简单。由于 BigTable 不是一个关系数据库,JDO 和 JPA 的接口出现了一些抽象泄漏。例如,在 App Engine for Java 中,您无法进行那些执行连接的查询。您可以在 JPA 和 JDO 间设置关系,但它们只能用来持久化关系。并且在持久化对象时,如果它们在相同的实体群中,那么它们只能被持久化到相同的原子事务中。根据惯例,具有所有权的关系位于与父类相同的实体群中。相反,不具有所有权的关系可以在不同的实体群中。

重新考虑数据规范化

要使用 App Engine 的可伸缩的数据存储,需要重新考虑有关规范化数据的优点的教导。当然,如果您在真实的环境中工作了足够长的时间,那么,您可能已经为了追求性能而牺牲过规范化了。区别在于,在处理 App Engine 数据存储时,您必须尽早且经常进行反规范化。反规范化 不再是一个忌讳的字眼,相反,它是一个设计工具,您可以把它应用在 App Engine for Java 应用程序的许多方面。

当您尝试把为 RDBMS 编写的应用程序移植到 App Engine for Java 时,App Engine for Java 的持久性泄漏的主要缺陷就会显露出来。App Engine for Java 数据存储并不是关系数据库的临时替代物,因此,要把您对 App Engine for Java 所做的工作移植到 RDBMS 端口并不容易。采用现有的模式并把它移植到数据存储中,这种场景则更为少见。如果您决定把一个遗留的 Java 企业应用程序移植到 App 引擎中,建议您要小心谨慎,并进行备份分析。Google App Engine 是一个针对专门为它设计的应用程序的平台。Google App Engine for Java 支持 JDO 和 JPA,这使得这些应用程序能够被移植回更传统的、未进行规范化的企业应用程序。

上一页  1 2 3 4 5 6 7  下一页

Tags:Google App Engine

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接