Hello gurus. I'm trying to design an application that allows users to rate movies with a "star system" of 1-5 stars. For that I need a user table, a movie table, and an X-ref table to link them as each user can rate multiple movies and each movie can be rated by multiple users. I can't define this relationship correctly with JPA and I need your help. Has anyone defined this kind of relationship or know where a tutorial/example is? Here is what I have which throws the following error: javax.persistence.PersistenceException: App Engine ORM does not support multiple parent key provider fields.
package com.app.movieRatings.model; import java.util.ArrayList; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToMany; import com.google.appengine.api.datastore.Key; @Entity public class User { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Key id; private String userId; @OneToMany(mappedBy = "user", cascade = CascadeType.ALL) private List<UserMovieXRef> UserMovieXRefs = new ArrayList<UserMovieXRef>(); // Getters and setters... } package com.app.movieRatings.model; import java.util.ArrayList; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToMany; import com.google.appengine.api.datastore.Key; @Entity public class Movie { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Key id; private String name; @OneToMany(mappedBy = "movie", cascade = CascadeType.ALL) private List<UserMovieXRef> UserMovieXRefs = new ArrayList<UserMovieXRef>(); // Getters and setters... } package com.app.movieRatings.model; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.ManyToOne; import com.google.appengine.api.datastore.Key; @Entity public class UserMovieXRef { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Key id; private int starRating; @ManyToOne(fetch = FetchType.LAZY) private User user; @ManyToOne(fetch = FetchType.LAZY) private Movie movie; // Getters and setters... } -- 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-java@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.