Hi there, I'm trying my first attempt on GAE and face wierd exception
(I'm new to JDO too):
I have a data class with a map field, intended to be used internally:
@PersistenceCapable(identityType=IdentityType.APPLICATION)
public class ElementAnalysis {
...
//not persistent
private Map<Element, Amount> amounts = new HashMap<Element,
Amount>();
}
then I try to save it
@Override
public Long save(ElementAnalysis analysis) {
PersistenceManager pm =
ManagerFactory.get().getPersistenceManager();
try {
pm.currentTransaction().begin();
pm.makePersistent(analysis);
pm.currentTransaction().commit();
return analysis.getKey();
} finally {
if (pm.currentTransaction().isActive()) {
pm.currentTransaction().rollback();
}
pm.close();
}
}
and suddenly I see:
[java] WARNING: /upload
[java] java.lang.IllegalArgumentException: amounts:
java.util.HashMap is not a supported property type.
[java] at
com.google.appengine.api.datastore.DataTypeUtils.checkSupportedSingleValue(DataTypeUtils.java:
184)
[java] at
com.google.appengine.api.datastore.DataTypeUtils.checkSupportedValue(DataTypeUtils.java:
157)
[java] at
com.google.appengine.api.datastore.DataTypeUtils.checkSupportedValue(DataTypeUtils.java:
123)
[java] at
com.google.appengine.api.datastore.Entity.setProperty(Entity.java:280)
[java] at
org.datanucleus.store.appengine.DatastoreFieldManager.storeObjectField(DatastoreFieldManager.java:
843)
[java] at
org.datanucleus.state.AbstractStateManager.providedObjectField(AbstractStateManager.java:
1037)
[java] at
ru.sponsite.doctor.domain.ElementAnalysis.jdoProvideField(ElementAnalysis.java)
[java] at
ru.sponsite.doctor.domain.ElementAnalysis.jdoProvideFields(ElementAnalysis.java)
[java] at
org.datanucleus.state.JDOStateManagerImpl.provideFields(JDOStateManagerImpl.java:
2715)
[java] at
org.datanucleus.store.appengine.DatastorePersistenceHandler.insertPreProcess(DatastorePersistenceHandler.java:
341)
[java] at
org.datanucleus.store.appengine.DatastorePersistenceHandler.insertObjects(DatastorePersistenceHandler.java:
251)
What am I doing wrong?
--
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.