java.util.HashMap is not supported, isn't it? I'm using Google plugin for Eclipse. This kind of exception came when I testing the entity having the Map field in Eclipse.
Caused by: java.lang.IllegalArgumentException: notes: java.util.HashMap is not a supported property type The class declaration is: @PersistenceCapable(identityType = IdentityType.APPLICATION, detachable="true") public class Person { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Key key; @Index(unique = "true") @Persistent(nullValue = NullValue.NONE) private String name; @Persistent(nullValue = NullValue.NONE) private Date birthday; @Persistent(nullValue = NullValue.NONE) private char gender; @Persistent(defaultFetchGroup="true") @Element(dependent = "true") private Map<String, String> notes; @Persistent private Text remark; @Persistent private boolean isPublic = false; ... } On 2月12日, 上午4時10分, "Ikai L (Google)" <ika...@google.com> wrote: > I'm a bit curious as you why you are trying to persist a collection class. > Why not create an entity and persist the Map as a field on the entity? > > > > > > On Sun, Feb 7, 2010 at 10:57 PM, Alex Lui <luiale...@gmail.com> wrote: > > As java.util.Map isn't supported by GAE, I'm trying to create a class > > > @PersistenceCapable(identityType = IdentityType.APPLICATION, > > detachable="true") > > public class DAOMap<K extends Object, V extends Object> implements > > Map<K,V> { > > ... > > > however, got such exception in Eclipse console > > > DataNucleus Enhancer (version 1.1.4) : Enhancement of classes > > Errors were encountered when loading the specified MetaData files and > > classes. See the nested exceptions for details > > DataNucleus Enhancer completed with an error. Please review the > > enhancer log for full details. Some classes may have been enhanced but > > some caused errors > > Feb 8, 2010 2:55:53 PM org.datanucleus.enhancer.DataNucleusEnhancer > > main > > SEVERE: DataNucleus Enhancer completed with an error. Please review > > the enhancer log for full details. Some classes may have been enhanced > > but some caused errors > > Errors were encountered when loading the specified MetaData files and > > classes. See the nested exceptions for details > > org.datanucleus.exceptions.NucleusUserException: Errors were > > encountered when loading the specified MetaData files and classes. See > > the nested exceptions for details > > at > > org.datanucleus.metadata.MetaDataManager.loadClasses(MetaDataManager.java: > > 426) > > at > > > org.datanucleus.enhancer.DataNucleusEnhancer.getFileMetadataForInput(DataNu > > cleusEnhancer.java: > > 743) > > at > > > org.datanucleus.enhancer.DataNucleusEnhancer.enhance(DataNucleusEnhancer.ja > > va: > > 545) > > at > > org.datanucleus.enhancer.DataNucleusEnhancer.main(DataNucleusEnhancer.java: > > 1252) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: > > 39) > > at > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp > > l.java: > > 25) > > at java.lang.reflect.Method.invoke(Method.java:597) > > at > > com.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java: > > 57) > > at com.google.appengine.tools.enhancer.Enhance.<init>(Enhance.java: > > 60) > > at com.google.appengine.tools.enhancer.Enhance.main(Enhance.java:41) > > Caused by: java.lang.IllegalStateException: Unknown type: K > > at > > > org.datanucleus.jdo.metadata.JDOAnnotationReader.processMemberAnnotations(J > > DOAnnotationReader.java: > > 1748) > > at > > > org.datanucleus.metadata.annotations.AbstractAnnotationReader.getMetaDataFo > > rClass(AbstractAnnotationReader.java: > > 169) > > at > > > org.datanucleus.metadata.annotations.AnnotationManagerImpl.getMetaDataForCl > > ass(AnnotationManagerImpl.java: > > 136) > > at > > > org.datanucleus.metadata.MetaDataManager.loadAnnotationsForClass(MetaDataMa > > nager.java: > > 2278) > > at > > org.datanucleus.metadata.MetaDataManager.loadClasses(MetaDataManager.java: > > 385) > > ... 10 more > > Nested Throwables StackTrace: > > java.lang.IllegalStateException: Unknown type: K > > at > > > org.datanucleus.jdo.metadata.JDOAnnotationReader.processMemberAnnotations(J > > DOAnnotationReader.java: > > 1748) > > at > > > org.datanucleus.metadata.annotations.AbstractAnnotationReader.getMetaDataFo > > rClass(AbstractAnnotationReader.java: > > 169) > > at > > > org.datanucleus.metadata.annotations.AnnotationManagerImpl.getMetaDataForCl > > ass(AnnotationManagerImpl.java: > > 136) > > at > > > org.datanucleus.metadata.MetaDataManager.loadAnnotationsForClass(MetaDataMa > > nager.java: > > 2278) > > at > > org.datanucleus.metadata.MetaDataManager.loadClasses(MetaDataManager.java: > > 385) > > at > > > org.datanucleus.enhancer.DataNucleusEnhancer.getFileMetadataForInput(DataNu > > cleusEnhancer.java: > > 743) > > at > > > org.datanucleus.enhancer.DataNucleusEnhancer.enhance(DataNucleusEnhancer.ja > > va: > > 545) > > at > > org.datanucleus.enhancer.DataNucleusEnhancer.main(DataNucleusEnhancer.java: > > 1252) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: > > 39) > > at > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp > > l.java: > > 25) > > at java.lang.reflect.Method.invoke(Method.java:597) > > at > > com.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java: > > 57) > > at com.google.appengine.tools.enhancer.Enhance.<init>(Enhance.java: > > 60) > > at com.google.appengine.tools.enhancer.Enhance.main(Enhance.java:41) > > DataNucleus Enhancer completed and no classes were enhanced. Consult > > the log for full details > > > Any idea? > > > -- > > 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 > > google-appengine-j...@googlegroups.com. > > To unsubscribe from this group, send email to > > google-appengine-java+unsubscr...@googlegroups.com<google-appengine-java%2B > > unsubscr...@googlegroups.com> > > . > > For more options, visit this group at > >http://groups.google.com/group/google-appengine-java?hl=en. > > -- > Ikai Lan > Developer Programs Engineer, Google App > Enginehttp://googleappengine.blogspot.com|http://twitter.com/app_engine -- 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 google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.