У меня есть вложенный объект, как этотSpringData JPA Hibernate, пытаясь сохранить новый вложенный объект
public class Chart {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long chart_id;
@OneToMany(fetch=FetchType.EAGER,cascade=CascadeType.ALL)
@JoinColumn(name="chart_id")
private Set<ChartGroup> chartGroups;
/* ..other attributes.. */
}
public class ChartGroup {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long group_id;
private long chart_id;
@OneToOne(fetch=FetchType.EAGER,cascade=CascadeType.ALL)
@JoinColumn(name="group_id")
private ChartYData chartYData;
/* ..other attributes.. */
}
public class ChartYData {
@Id
private long group_id;
private String yData;
}
У меня есть службы REST, где используются для извлечения и сохранения/обновить данные. После извлечения данных для конкретной диаграммы я сохраняю все данные JSON в объекте javascript. Пользователь может удалять или изменять группы в диаграмме, или он может добавлять новые группы. Я отправляю полный объект диаграммы на сервер для сохранения. При добавлении новой группы или удалении старой группы вызов не выполняется. Проблема возникает, когда пользователь добавляет новую группу. В моей JSON значение, как этот
При попытке обновить объект СХЕМЫ, он дает мне MySQLIntegrityConstraintViolationException: Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не удается (chartpro
chart_ydata
, скованность fk_ydata_to_group
FOREIGN KEY. (group_id
) Лит chart_group
(group_id
)
есть ли способ, чтобы обновить свой объект диаграммы в целом? Я имею в виду JPA следует добавить ChartGroup, а затем добавить ChartYData с вновь созданным group_id
Это г VES мне ту же ошибку, даже когда я отправить следующий JSON (с group_id = нуль для новых групп)
ChartGroups : [{/* data for previously present Chart groups (works fine) */},{
chartYData :
{
ydata : "ydata",
group_id : null
}
chart_id:1
group_id:null
}]
Я все еще получаю такое же исключение, теперь я отправляю JSON с group_id = null для новых групп. –
не должно быть null. Сначала попытайтесь перенести ChartGroup, затем получите group_id и установите его в ChartYData, затем сохраняйте его –