У меня есть модель, как это:Hibernate вопрос о создании OnetoMany, ManyToOne Mapping Предоставление нулевой
@Entity
[...]
class ParentObject{
[...]
@OneToMany(cascade = CascadeType.ALL, mappedBy= "parentObject", orphanRemoval = true)
private List<Relationship> relationship;
}
и в отношениях субъекта:
@ManyToOne
@JoinColumn(name="PARENT_OBJECT_ID")
private ParentObject parentObject;
и все работает отлично на обновление и сохранение. Только тогда, когда я пытаюсь создать новый ParentObject с новыми отношений внутри него:
parentObject: {
id: null,
relationship: [
{id:null,
parentObjectId:null,
[...]
}]
}
спящий режим не имеет идентификатор для ParentObject, так Relationship.parentObject.id равна нулю. База данных выдает ошибку, говоря:
не может вставить NULL в ("MyDB" "отношения" "parent_object_id"..)
Любая помощь будет оценена.
Edit: Вот мой код услуги:
public ParentObjectDto save(ParentObjectDto parentObjectDto) {
ParentObject parentObject = dtoConverter.convert(parentObjectDto, ParentObject.class);
boolean isNewPO = parentObject.getId() == null ? true : false;
parentObject = parentObjectRepository.save(parentObject);
if (isNewPO) {
// This loop ensures that when a new PO is added, the child relationship
// objects are connected with the new parentObject that was just added.
for (Relationship relationship : parentObject.getRelationship()) {
relationship.setParentObject(parentObject);
}
}
return dtoConverter.convert(parentObject, ParentObjectDto.class);
}
имена, конечно, не те, которые я пишу здесь, я просто изменил их, чтобы быть более понятным, если у меня есть какие-либо орфографические ошибки происходят из моих изменений вручную :)
Можете ли вы опубликовать свой код обслуживания, который создает и сохраняет объекты? –
Да, я просто добавил код моей службы. –