Hi,

I think we need to know your class "Entity" to spot the problem

regards

didier

On Dec 29, 1:57 am, Kalyan Akella <[email protected]> wrote:
> Hi,
>
> In my application, I have the following unidirectional one-to-many
> relationship:
>
> @PersistenceCapable
> public class Recipe implements Serializable {
>     @PrimaryKey
>     @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
>     private Key key;
>
>     @Persistent
>     private String name;
>     ....
>
> }
>
> @PersistenceCapable
> public class CookBook {
>     @PrimaryKey
>     @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
>     private Key key;
>
>     @Persistent
>     private String title;
>
>     @Persistent
>     private List<Recipe> recipes;    // *<- one to many with Recipe *
>     ....
>
> }
>
> I am doing the following to persist an instance of *CookBook* into data
> store using the low level API:
>
>     private DatastoreService dataStoreSvc =
> DatastoreServiceFactory.getDatastoreService();
>
>     public void persistEntity(CookBook cookBook) {
>         Entity entityToPersist = new Entity("CookBook");
>         ...
>         entityToPersist.setProperty("recipes", cookBook.getRecipes());  // 
> *<--
> an error occurs here*
>         ...
>         dataStoreSvc.put(entityToPersist);
>     }
>
> In the snippet above, the highlighted line throws the following error:
>
> recipes: com.examples.domain.Recipe is not a supported property type.
> java.lang.IllegalArgumentException: recipes: com.examples.domain.Recipe is
> not a supported property type.
>     at
> com.google.appengine.api.datastore.DataTypeUtils.checkSupportedSingleValue(DataTypeUtils.java:184)
>     at
> com.google.appengine.api.datastore.DataTypeUtils.checkSupportedValue(DataTypeUtils.java:149)
>     at
> com.google.appengine.api.datastore.DataTypeUtils.checkSupportedValue(DataTypeUtils.java:123)
>     at
> com.google.appengine.api.datastore.Entity.setProperty(Entity.java:280)
>     at
> com.examples.domain.persist.DatastoreHelper.persistEntity(DatastoreHelper.java:21)
>
> Note that I marked the *Recipe* class to be Serializable &
> PersistanceCapable. Still the *setProperty* call fails. Moreover, I am using
> this snippet of code (and the low level API) during local unit testing and
> my test fails with this error.
>
> Could you please help me understand what am I missing here ? Please let me
> know if you need more information.
> Sincere Regards,
> Kalyan

-- 
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