Ответ 1
Spring фреймворки попытались решить проблему. Но они отказались от попытки, когда стало очевидно, что нет никакого способа гарантировать, что решение будет работать со всеми драйверами JDBC. Это связано с тем, что спецификация JDBC не гарантирует, что сгенерированные ключи будут доступны после пакетного обновления. Драйверы JDBC могут использовать эту функцию по своему усмотрению. В некоторых случаях базовая база данных может не возвращать сгенерированные ключи, что делает невозможным поддержку драйвером этой функции.
Таким образом, даже если вы напрямую работаете с JDBC, вам нужно будет проверить, позволяет ли ваша база данных и драйвер JDBC создавать сгенерированные ключи.
Я помню, что смог добиться этого с помощью драйвера MySQL 5.0 JDBC с некоторыми усилиями, но никогда не интегрировал решение в наше производственное приложение, поскольку нам также приходилось поддерживать более старые версии MySQL.