Hallo bin ich versuche die neue Java-Unterstützung für Google App-Engine, und ich versuche, eine Persistency-Schicht für alle meine Objekte zu machen. Ich versuche, eine Freund-Verbindung zu modellieren, stoße aber auf Probleme. Ich verwende JPA, um die Objekte beizubehalten und meine Persistenzobjekte mit JPA-Anmerkungen zu definieren.Wie modelliere ich ein Freundessystem mit Persistency Layer?
war meine Idee, Folgendes zu tun:
Benutzerobjekt:
@Entity
public class User {
@Column(name="user_id")
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Extension(vendorName="datanucleus", key="gae.encoded-pk", value="true")
private String id;
@OneToMany(cascade={CascadeType.ALL},mappedBy="invitee")
private List<Connection> IncConnections;
@OneToMany(cascade={CascadeType.ALL},mappedBy="initiator")
private List<Connection> OutConnections;
}
.
@Entity
public class Connection {
@Column(name="connection_id")
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Extension(vendorName="datanucleus", key="gae.encoded-pk", value="true")
private String id;
@ManyToOne(cascade={CascadeType.ALL})
User initiator;
@ManyToOne(cascade={CascadeType.ALL})
User invitee;
}
Aber wenn ich dies versuchen, erhalte ich die Fehlermeldung: App Engine ORM unterstützt nicht mehrere übergeordnete Schlüssel-Provider Felder
So hat jemand eine andere Idee, wie ein Freund System zu modellieren, ohne dass mehrere Eltern mit Schlüssel?
Hoffe jemand kann helfen!
überraschenderweise unterstützt GAP JPA, obwohl es auf BigTable läuft. –
Ich weiß es, aber Sie können keine Joins in Tabellen verwenden. Daher müssen Sie Ihr Modell überdenken. –
Ja, ich weiß das, ich habe nicht viel Erfahrung mit Ausdauer, aber ich könnte wirklich eine Idee verwenden, wie man dieses Modell angehen kann. –