2013-04-27 6 views
0

У меня есть вложенный объект, как этот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 значение, как этот Post Data JSON

При попытке обновить объект СХЕМЫ, он дает мне MySQLIntegrityConstraintViolationException: Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не удается (chartprochart_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 
}] 

ответ

0

Я думаю, что проблема, которую вы должны установить GROUP_ID в ChartYData сущностей вручную, так как вы не посылаете group_id с JSON объект или обрабатывать его с помощью javascript для добавления group_id в ChartYData перед его отправкой.

+0

Я все еще получаю такое же исключение, теперь я отправляю JSON с group_id = null для новых групп. –

+0

не должно быть null. Сначала попытайтесь перенести ChartGroup, затем получите group_id и установите его в ChartYData, затем сохраняйте его –

Смежные вопросы