无法将Cloud SQL与appengine连接的android项目集成?

问题描述:

我有一个与GCM工作的appengine连接的android项目。现在,我想将本地主机上的Mysql实例连接到appengine应用程序。我遵循这些instructions,但徒劳无功。无法将Cloud SQL与appengine连接的android项目集成?

本地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类。我试图实现的是使用端点在本地appengine开发中添加一行到上表。

请注意:

  1. 我的注释Test.java类我产生endpoint class为此。
  2. 我已将<class>标记添加到persistence.xml。
  3. 注释处理器配置有Datanucleus。
  4. “数据库开发”透视图显示本地实例已连接。
  5. 我的偏好是大核。
+0

JPACursorHelper是GAE/Datastore(aka BigTable)数据库使用的类,而不是RDBMS,实际上做的很少 - 请参阅http://code.google.com/p/datanucleus-appengine/source/browse/trunk /src/com/google/appengine/datanucleus/query/CursorHelper.java。您应该使用您希望使用的JPA持久性实现,因为这是具有API(JPA)的整个点......您引用的doc页面显示“选择您选择的JPA实现”,这就是所有要做的事情 – DataNucleus 2013-03-25 10:59:56

+0

DataNucleus,感谢您的及时回复。正在通过TestEndpoint.java中的insertTest方法插入新行。在再次浏览文件时,我发现JPACursorHelper不会阻塞(至少插入)。如果我错了,请纠正我。 – FireAndIce 2013-03-25 11:31:33

+0

这是否意味着生成的端点只能与数据存储一起使用? – FireAndIce 2013-03-25 11:57:54

由于是AppEngine/Datastore特定的(使用JPACursorHelper类),所以“TestEndpoint”类将不起作用。您需要使用标准的JPA功能编写一个类......无论这种方法正在尝试做什么。使用GAE-specific features,你失去了可移植性。

+0

感谢DataNucleus。你的观点总是有所作为。 :) – FireAndIce 2013-03-25 16:15:32

+0

DataNucleus,如果我不想松散可移植性,我应该怎么做。我是新来的“云”。我应该使用客户端 - 云通信的架构模式构建我的应用程序吗? – FireAndIce 2013-03-26 07:37:13

+0

像经纪人模式? – FireAndIce 2013-03-26 07:43:30