2009-10-04 15 views
2

Quelqu'un peut-il fournir un code simple sur l'utilisation d'une clé codée en Java pour le moteur de l'application Google? L'exemple de code est un peu déroutant. Supposons que j'ai une classe d'employés et je veux que la clé primaire soit construite manuellement avec un format de "nom, email, téléphone" par exemple un exemple de clé serait "James Smith, [email protected], 12345678"Clé codée Google App Engine en Java

en ce qui concerne l'exemple de code

@PrimaryKey 
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) 
@Extension(vendorName="datanucleus", key="gae.encoded-pk", value="true") 
private String encodedKey; 

@Persistent 
@Extension(vendorName="datanucleus", key="gae.pk-name", value="true") 
private String keyName; 

Quelles sont les valeurs si quelqu'un ne veut-je attribuer à encodedKey et keyName? Après plusieurs essais, je reçois toujours l'erreur suivante:

The primary key field is an encoded String but an unencoded value has been provided. If you want to set an unencoded value on this field you can either change its type to be an unencoded String (remove the "gae.encoded-pk" extension), change its type to be a com.google.appengine.api.datastore.Key and then set the Key's name field, or create a separate String field for the name component of your primary key and add the "gae.pk-name" extension.

+0

pouvez-vous nous montrer le code qui génère l'erreur? –

Répondre

2

Vous devez définir le nom de la clé et non la clé. Pour cela, suivez l'une des suggestions dans le message d'erreur, puis spécifiez votre chaîne codée comme nom de clé.

1

Vous devriez être en mesure de définir une valeur pour keyName, et laissez le Gae api remplir automatiquement encodedKey pour vous.