Nous avons des difficultés à conserver des données dans notre projet Google App Engine, nous avons les classes "Client", "Réservation" et "Chambre ".Données persistantes dans GAE - Entité ne peut pas avoir une clé primaire Long et être un objet enfant
Notre objectif est de cartographier une relation entre ceux-ci, avec une relation un-à-plusieurs du client à la réservation et une relation un-à-plusieurs de la pièce à la même réservation.
L'exception que nous obtenons est:
Erreur dans les méta-données pour no.hib.mod250.asm2.model.Reservation.id: ne peut pas avoir une clé primaire java.lang.Long et être un enfant objet (le champ propriétaire est no.hib.mod250.asm2.model.Customer.res).
Notre code est le suivant:
Customer.java
@PersistenceCapable(identityType=IdentityType.APPLICATION)
public class Customer implements Serializable {
@PrimaryKey
@Persistent(valueStrategy=IdGeneratorStrategy.IDENTITY)
private Long id;
(...)
//an customer has one or more reservations.
@Persistent(mappedBy="customer")
private List <Reservation> res;
(...)
}
Room.java
@PersistenceCapable(identityType=IdentityType.APPLICATION)
public class Room implements Serializable {
@PrimaryKey
@Persistent(valueStrategy=IdGeneratorStrategy.IDENTITY)
private Long id;
(...)
//a room has one or more reservations
@Persistent(mappedBy="room")
private List<Reservation> res;
@Persistent
private Hotel hotel;
(...)
}
Reservation.java
@PersistenceCapable(identityType=IdentityType.APPLICATION)
public class Reservation implements Serializable {
@PrimaryKey
@Persistent(valueStrategy=IdGeneratorStrategy.IDENTITY)
private Long id;
(...)
@Persistent
private Room room;
@Persistent
private Customer customer;
(...)
}