GAE Android连接项目JDO主键

时间:2014-04-01 02:40:38

标签: android eclipse google-app-engine primary-key jdo

我一直在尝试创建一个GAE来获取数据并将数据插入到我的Android应用程序中。我使用Eclipse向导来创建两个项目(app engine connected android project)。我正在使用JDO并尝试创建独特的主键,但它似乎并没有为我做这些,我认为它应该是我可能应该是错的。服务器不断弹出主键不应为0的消息。我是新手并正在测试它。这是我认为相关的代码(如果需要更多,请告诉我)。至于我的理解,它应该在服务器调用makepersistant()时得到它的密钥。

@ApiMethod(name = "insertTrack")
public Track insertTrack(Track track) {
    PersistenceManager mgr = getPersistenceManager();
    try {
        if (containsTrack(track)) {
            throw new EntityExistsException("Object already exists");
        }
        mgr.makePersistent(track);
    } finally {
        mgr.close();
    }
    return track;
}

这是我的应用程序正在调用的内容:

public class EndpointsTask extends AsyncTask<Context, Integer, Long> {
    protected Long doInBackground(Context... contexts) {

          Trackendpoint.Builder endpointBuilder = new Trackendpoint.Builder(
          AndroidHttp.newCompatibleTransport(),
          new JacksonFactory(),
          new HttpRequestInitializer() {
          public void initialize(HttpRequest httpRequest) { }
          });
  Trackendpoint endpoint = CloudEndpointUtils.updateBuilder(
  endpointBuilder).build();
  try {
      Track track = new Track();
      track.setName("1");
      track.setDesc("First Track on Server");          
      Track result = endpoint.insertTrack(track).execute();
  } catch (IOException e) {
    e.printStackTrace();
  }
      return (long) 0;
    }
}

和JDO

public class Track {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private long trackID;
private String name;
private String desc;

任何帮助我走向正确方向的帮助都会很棒。提前谢谢!

0 个答案:

没有答案