Hi,

According to 
http://code.google.com/intl/de/appengine/docs/java/datastore/creatinggettinganddeletingdata.html#Keys

it is possible to set the primay keys yourself to a unique string.
When I use the code below this email however the hosted server gives
the following error

SEVERE: [1250461028948000] javax.servlet.ServletContext log: Exception
while dispatching incoming RPC call
com.google.gwt.user.server.rpc.UnexpectedException: Service method
'public abstract java.lang.String
org.haitsma.gwttest.client.GreetingService.greetServer
(java.lang.String)' threw an unexpected exception:
org.datanucleus.exceptions.NucleusUserException: The primary key for
org.haitsma.gwttest.client.Employee is an unencoded string but the key
of the corresponding entity in the datastore does not have a name.
You may want to either change the primary key to be an encoded string
(add the "gae.encoded-pk" extension), change the primary key to be of
type com.google.appengine.api.datastore.Key, or, if you're certain
that this class will never have a parent, change the primary key to be
of type Long.

What do I do wrong? Also when I add @Persistent annotation behind
@PrimaryKey I get the same error.

Thanks,

Jaap


Example code
----------
import java.util.Date;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Employee {
    @PrimaryKey
    private String name;

    @Persistent
    private Date hireDate;

    public Employee(String name, Date hireDate) {
        this.name = name;
        this.hireDate = hireDate;
    }

        public String getName() {
                return name;
        }

        public void setName(String name) {
                this.name = name;
        }

        public Date getHireDate() {
                return hireDate;
        }

        public void setHireDate(Date hireDate) {
                this.hireDate = hireDate;
        }
}
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to