Hello,
I have the following classes:
------------------------------------
@PersistenceCapable(detachable = "true", identityType =
IdentityType.APPLICATION)
@Inheritance(customStrategy = "complete-table")
public class Move implements Cloneable, Serializable {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
@Extension(vendorName = "datanucleus", key = "gae.encoded-pk", value =
"true")
private String id;
@Persistent(defaultFetchGroup = "true")
@Embedded
private DelayedEffect delayedEffect;
}
-----------------
@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable =
"true")
@Inheritance(customStrategy = "complete-table")
public abstract class DelayedEffect implements Serializable {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
@Extension(vendorName = "datanucleus", key = "gae.encoded-pk", value =
"true")
protected String id;
}
-----------------
@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable =
"true")
@Inheritance(customStrategy = "complete-table")
public class SlowOpponentDelayedEffect extends DelayedEffect {
@Persistent
private int slowStrength;
}
------------------------------------
When persisting the Move object (code snippet below), I get the following
exception:
java.lang.RuntimeException: Unable to locate
com.fiveorbs.shared.models.SlowOpponentDelayedEffect.slowStrength in
embedded meta-data map. This is most likely an App Engine bug.
at
org.datanucleus.store.appengine.DatastoreFieldManager.buildMappingConsumer(DatastoreFieldManager.java:1211)
at
org.datanucleus.store.appengine.DatastoreFieldManager.storeEmbeddedField(DatastoreFieldManager.java:984)
at
org.datanucleus.store.appengine.DatastoreFieldManager.storeObjectField(DatastoreFieldManager.java:810)
------------------------------------
final Move move = new Move();
final SlowOpponentDelayedEffect effect = new SlowOpponentDelayedEffect();
effect.setSlowStrength(5);
move.setDelayedEffect(effect);
final PersistenceManager pm = this.newPersistenceManager();
final Move persistent = pm.makePersistent(move); // Exception is thrown
there
------------------------------------
Please note that I have no problem when trying to persist embedded fields
that do not involve inheritance.
I googled around, but could not find anyone with a similar issue (except
here <http://hoangle.info/2010/07/06/jpa-in-google-app-engine-embedded/>,
but it involves JPA).
Does anyone has any clue as to what the problem could be?
Thanks in advance for your help,
--
seb
--
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.