Привет, я пробую новую поддержку Java для движка приложений Google и пытаюсь создать слой постоянства для всех моих объектов. Я пытаюсь смоделировать соединение с другом, но сталкиваюсь с проблемами. Я использую JPA для сохранения объектов и определения своих объектов постоянства с помощью аннотаций JPA.
Моя идея заключалась в следующем:
Пользовательский объект:
@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;
}
Но когда я пытаюсь это сделать, я получаю ошибку:
App Engine ORM не поддерживает несколько полей поставщика родительского ключа
Так у кого-нибудь есть другая идея, как смоделировать систему друга без использования нескольких родительских ключей?
Надеюсь, кто-то может помочь!