Добрый день.
При попытке создания одновременно дочерних сущностей первого и второго уровня получаем ошибку Primary Key.
Пример:
Имеются сущности:
- “Страна” (родитель: имя, города),
- “Город” (дочка 1го уровня: имя, страна_ИД, улицы),
- “Улица” (дочка 2го уровня: имя, город_ИД).
Создаем страну. Задаем имя “Россия”, создаем элемент для вложенной таблицы “Города”: задаем ему имя “Москва”, а также добавляем во вложенную таблицу “Улицы” новый элемент: “Красная площадь”. Жмем “ОК”, видим элемент в таблице с улицами на странице добавления города “Москва”. Жмем еще раз “ОК” - видим элемент “Москва” в таблице “Города” на странице добавления страны “Россия”. Жмем “ОК” - получаем ошибку Primary Key: "Не удается вставить повторяющийся ключ в объект “Города” ".
Получается, что cuba создает “Город” несколько раз.
Ошибка отсутствует, если мы не добавляем “Улица” сразу при создании страны.
Ошибка возникает, если мы добавляем новые “Город” и “Улицу” путем редактирования “Страны”. Однако ошибка отсутствует, если мы добавляем “Улицу” путем редактирования существующего “Города” при редактировании “Страны”.
Подобная ошибка встречается часто в разных местах и разных связках таблиц приложения, если мы создаем список дочерних сущностей второго порядка одновременно с дочерней сущностью первого порядка, к которой их привязываем.
ID в сущностях храним в типе Long (bigint).