Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to specify legacy incremental IDs with Java

I'm using GAE 1.8.1 and I've hit an issue with Objectify with the new scattered ID system. At least I think it's Objectify, I'm not sure (Using Objectify 4 RC1). I'm getting this..

Caused by: java.lang.IllegalArgumentException: id cannot be zero
    at com.google.appengine.api.datastore.KeyFactory.createKey(KeyFactory.java:52)
    at com.google.appengine.api.datastore.KeyFactory.createKey(KeyFactory.java:47)
    at com.googlecode.objectify.Key.<init>(Key.java:91)
    at com.googlecode.objectify.Key.create(Key.java:39)
    at com.googlecode.objectify.impl.cmd.LoadTypeImpl.id(LoadTypeImpl.java:77)

The records get put in the datastore correctly as they have an ID, but this is on fetching the data out.

So I have to roll back to what it was before for the time being. It states here that you can specify the legacy ID generation with modifying the auto_id_policy in appengine-web.xml. I've tried adding this to the file:

<auto-id-policy>legacy</auto-id-policy>

But it doesn't work, or at least it might work if the XSD it validates against supports this tag. You can't deploy the app because of this.

like image 875
Eurig Jones Avatar asked Jun 13 '13 20:06

Eurig Jones


1 Answers

we are aware of this issue and working on a fix.

like image 110
Rohwer Avatar answered Nov 11 '22 05:11

Rohwer