2009-12-08 92 views
0

我有一个“对象”字段在我的JDO类之一,像这样:Google App Engine是否支持具有“对象”字段的JDO数据对象?

 
@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = "true") 
class Foo { 
    ... 
    @Persistent 
    @Value(types={java.lang.Boolean.class, java.lang.String.class}) 
    Object bar; 
    ... 
} 

当我试图进入这个领域,我得到了以下异常:

 
Field "Foo.bar" is declared as a reference 
type (interface/Object) but no implementation classes of "java.lang.Object" have been found! 
org.datanucleus.exceptions.NucleusUserException: Field "Foo.bar" is declared as a reference type (interface/Object) but no implementation classes of "java.lan 
g.Object" have been found! 
     at org.datanucleus.metadata.MetaDataUtils.getImplementationNamesForReferenceField(MetaDataUtils.java:531) 
     at org.datanucleus.store.mapped.mapping.ReferenceMapping.createPerImplementationColumnsForReferenceField(Re 
ferenceMapping.java:279) 
     at org.datanucleus.store.mapped.mapping.ReferenceMapping.prepareDatastoreMapping(ReferenceMapping.java:205) 
     at org.datanucleus.store.mapped.mapping.ReferenceMapping.initialize(ReferenceMapping.java:114) 
     at org.datanucleus.store.mapped.mapping.MappingFactory.createMapping(MappingFactory.java:97) 
     at org.datanucleus.store.mapped.mapping.AbstractMappingManager.getMapping(AbstractMappingManager.java:248) 
     at org.datanucleus.store.appengine.DatastoreTable.initializeNonPK(DatastoreTable.java:301) 
     at org.datanucleus.store.appengine.DatastoreTable.buildMapping(DatastoreTable.java:276) 
     at org.datanucleus.store.appengine.DatastoreManager.newStoreData(DatastoreManager.java:329) 
     at org.datanucleus.store.AbstractStoreManager.addClasses(AbstractStoreManager.java:788) 
     at org.datanucleus.store.AbstractStoreManager.addClass(AbstractStoreManager.java:759) 
     at org.datanucleus.store.mapped.MappedStoreManager.getDatastoreClass(MappedStoreManager.java:358) 
     at org.datanucleus.store.appengine.DatastoreManager.getDatastoreClass(DatastoreManager.java:555) 
     at org.datanucleus.store.appengine.query.DatastoreQuery.performExecute(DatastoreQuery.java:200) 
     at org.datanucleus.store.appengine.query.JDOQLQuery.performExecute(JDOQLQuery.java:84) 
     at org.datanucleus.store.query.Query.executeQuery(Query.java:1489) 
     at org.datanucleus.store.query.Query.executeWithArray(Query.java:1371) 
     at org.datanucleus.store.query.Query.execute(Query.java:1344) 
     at org.datanucleus.jdo.JDOQuery.execute(JDOQuery.java:221) 

有谁知道如果Google App Engine支持“@Value”注释和/或如何解决此问题?

谢谢!

回答

1

谢谢!代替使用@Value,我应该这样做:

 
@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = "true") 
class Foo { 
    ... 
    @Persistent(types={java.lang.Boolean.class, java.lang.String.class}) 
    Object bar; 
    ... 
} 
相关问题