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