Toplink пытается сохранить нулевой объект
У меня есть объект "Экземпляр" с другим объектом "Курс" внутри. При попытке сохранить новый объект Instance я получаю следующую ошибку, если курс равен нулю:
java.lang.IllegalStateException: During synchronization a new object was found through a relationship that was not marked cascade PERSIST: null
Вот моя аннотация для курса:
@OneToOne(cascade = CascadeType.REFRESH,optional=true)
public Course getCourse() {
return course;
}
Я не понимаю, почему он пытается сохранить что-то, что является нулевым. Если это ноль, это должно просто оставить это поле нуль в базе данных, верно?
1 ответ
Я не понимаю, почему он пытается сохранить что-то, что является нулевым. Если это ноль, это должно просто оставить это поле нуль в базе данных, верно?
По умолчанию в JPA TopLink предполагается, что все поля сущности являются постоянными. Если вы хотите указать поле или свойство объекта, которое не является постоянным, необходимо пометить его как @Transient
(но это не то, что вы хотите здесь).
Итак, для меня эта ошибка является результатом того, что не указал правильный тип каскада для OneToOne
конец отношения в Instance
Сущность. Я не могу сказать, почему вы не используете ALL
но нужно хотя бы добавить PERSIST
,