Нам трудно сохранять данные в нашем проекте Google App Engine, у нас есть классы "Клиент", "Резервирование" и "Комната".
Наша цель состоит в том, чтобы отобразить взаимосвязь между ними, с отношением один-ко-многим от Клиента к бронированию и отношением один-ко-многим из комнаты с одним и тем же резервированием.
Исключение, которое мы получаем:
Ошибка в метаданных для no.hib.mod250.asm2.model.Reservation.id: не может иметь первичный ключ java.lang.Long и быть дочерним объектом (владельцем является no.hib.mod250.asm2. model.Customer.res).
Наш код выглядит следующим образом:
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;
(...)
}