java - 添加 Google App Engine 支持并保留独立支持

标签 java google-app-engine jpa jdo

我有一个基于 Stuts2/Google Guice/JPA 构建的 Java Web 应用程序。它使用 hibernate 作为 JPA 供应商。我想添加支持,以便它可以在 Google 的 App Engine 上使用。当然,我遇到了查询和映射的问题。例如不支持多对多和联接。

我正在尝试想出最好的解决方案来保持我的应用程序能够独立。例如,JPA 供应商支持的任何数据库上的 tomcat/jetty 或以 datanucleus 作为供应商的 Google App Engine。

我想到的一个解决方案是将 JPA 用于我的独立实现,并使用 JDO 用于 Google 的 App Engine。显然,这需要我使用 JPA 和 JDO 注释来注释我的模型对象,并为 DAO 层编写另一个实现。

其他人尝试过其他好的解决方案吗?

最佳答案

我认为你的方法很好。我认为良好的设计架构是最好的方法。您很可能会在 DAO 层中看到很多差异。一个好的设计会看到一个 DAO 接口(interface),然后每个特定的模型访问都会有自己的该接口(interface)的实现,例如JpaMyObjectDAO、JpaGAEObjectDAO 等。也像您所说的那样,App Engine 在声明实体类时有一些特殊要求。也许您可以拥有不同版本的实体类(每个版本都符合其存储方案,如 App Engine 或 Hibernate),然后拥有一个通用的 DTO 表示形式供更高层使用。

关于java - 添加 Google App Engine 支持并保留独立支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2038799/

相关文章:

java - 安卓旋转矩阵

spring - Google 应用引擎与 Spring 框架的兼容性

javascript - 如何使用带有重定向而不是新窗口的 Google 标志?

java - 如何在基于 Servlet 的 JPA 应用程序中配置数据库连接

java - 在 JDBC/PostgreSQL 中使用 SQL 数组类型更新结果集

java - webview 未连接到互联网页面

java - GuiceConfig 和 JSP_TEMPLATES_BASE_PATH

java - 使用外键列的单向 OneToMany

java - MySQL Hibernate 中的空指针异常 HQL

Java 控制台菜单库 - 是否有创建命令行菜单的简单方法?