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.

Reply via email to