Я получаю исключение
, объект ссылается на несохраненный временный экземпляр - сохраните временный экземпляр перед сбросом
в следующем коде:
public void addThing(String key, String someData) {
Thing thing = new Thing();
booking.setData(someData);
booking.setParent(this);
bookings.put(key, thing);
}
Родительское сопоставление:
@ElementCollection(fetch=FetchType.EAGER)
@Column(name="thing", nullable=false)
@MapKeyColumn(name="key")
@JoinColumn(name="parent_id")
protected Map<String, Thing> things = Maps.newHashMap();
Дочернее ('Thing') сопоставление:
@ManyToOne
private Parent parent;
Согласно руководству Hibernate:
В
ElementCollection
нет каскадной опции, целевые объекты всегда сохраняются, объединяются, удаляются с их родитель.
Но - до того, как я перешел на новое отображение @ElementCollection
, так что решите проблему, когда я получал явно фантомные элементы, возвращаемые для запроса, этот код работал правильно.
Я знаю, что может сохранить элемент отдельно, а затем сделать ссылку, b Но я предпочитаю, чтобы это выполнялось автоматически, и я подумал, что так и должно быть. Есть идеи?