Вычисление первичного ключа при автогенерации

78
11

Кажется, что это должно быть просто, но я не смог найти ответ... Я использую ElipseLink с Derby в среде EE7 и имею серию таблиц с внешними или составными ключевыми отношениями.

Если есть таблицы A, B и C, где первичный ключ генерируется автоматически. B использует его как внешний ключ и C как часть составного первичного ключа.

Как определить автоматически сгенерированное значение, когда это единственное гарантированное уникальное значение в A?

Мое предположение заключалось в том, что оно должно быть доступно в методах Entity Manager каким-то образом или непосредственно из свойства после завершения em.persist(entity). Я подтвердил, что запись создана, но свойство остается null, когда я использую метод getter после сохранения.

Спасибо заранее, Джон

спросил(а) 2021-01-27T18:14:17+03:00 5 месяцев, 4 недели назад
1
Решение
63

При генерации типа IDENTITY рекомендуется, чтобы persistence.xml был настроен на создание или удаление и создание, чтобы EclipseLink мог создать таблицу для отслеживания следующего ключа.

Обновление для автоматически сгенерированного ключа не происходит в свойстве объекта до физической записи в базу данных. Используя em.flush(), это может быть принудительно, и метод getter возвращает обновленное значение ключа.

ответил(а) 2021-01-27T18:14:17+03:00 5 месяцев, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема