【问题标题】:Unable to integrate Cloud SQL with the appengine connected android project?无法将 Cloud SQL 与 appengine 连接的 android 项目集成?
【发布时间】:2013-03-25 10:10:06
【问题描述】:

我有一个 appengine 连接的 android 项目与 GCM 工作。现在,我想将本地主机上的 Mysql 实例连接到 appengine 应用程序。我关注了这些instructions,但徒劳无功。

本地mysql实例上的表是这样的

+---------+-------------+------+-----+---------+----------------+
| Field   | Type        | Null | Key | Default | Extra          |
+---------+-------------+------+-----+---------+----------------+
| _ID     | bigint(5)   | NO   | PRI | NULL    | auto_increment |
| COLUMN1 | varchar(20) | NO   |     | NULL    |                |
+---------+-------------+------+-----+---------+----------------+

我正在尝试使用端点向该表中添加一行。但是,appengine 项目不断向本地数据存储添加行。

此外,在文档中使用了 EclipseLink。一方面,datanucleus 库默认添加到 appengine 项目中,然后出现JPA with EclipseLink documentation。文档令人困惑。

我应该使用 datanucleus 还是 EclipseLink?这两种方法我都试过了,都失败了。端点使用 Datanucleus 库。例如,端点使用 Datanucleus 中的 JPACursorHelper 类。我想要实现的是在本地应用引擎开发中使用端点在上表中添加一行。

请注意:

  1. 我有一个带注释的Test.java 类,我已经为其生成了一个endpoint class
  2. 我已将<class> 标签添加到persistence.xml。
  3. 注释处理器配置有 Datanucleus。
  4. “数据库开发”透视图显示本地实例已连接。
  5. 我的首选是 Datanucleus。

【问题讨论】:

  • JPACursorHelper 是与 GAE/Datastore(又名 BigTable)数据库而非 RDBMS 一起使用的一类,实际上做的很少 - 请参阅 code.google.com/p/datanucleus-appengine/source/browse/trunk/src/…。您应该使用您希望使用的 JPA 持久性实现,因为这就是拥有 API (JPA) 的全部意义......您引用的那个文档页面说“选择您选择的 JPA 实现”,这就是所有要做的事情
  • DataNucleus,感谢您的及时回复。正在通过 TestEndpoint.java 中的 insertTest 方法插入新行。再次浏览文件时,我发现 JPACursorHelper 没有阻碍(至少插入)。如果我错了,请纠正我。
  • 是否暗示生成的端点仅适用于 Datastore?

标签: google-app-engine eclipselink datanucleus google-cloud-sql


【解决方案1】:

您的“TestEndpoint”类将不起作用,因为它是 AppEngine/Datastore 特定的(使用该 JPACursorHelper 类)。您需要使用标准 JPA 功能编写一个类……无论该方法试图做什么。使用GAE-specific features 会失去可移植性。

【讨论】:

  • 感谢 DataNucleus。你的观点总是会有所作为。 :)
  • DataNucleus,不想失去可移植性怎么办。我是“云”的新手。我应该使用客户端-云通信的架构模式来构建我的应用程序吗?
猜你喜欢
  • 2011-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-15
  • 1970-01-01
  • 1970-01-01
  • 2018-12-15
  • 2011-09-09
相关资源
最近更新 更多