Получение сгенерированного идентификатора для собственного запроса вставки JPA
Из соображений производительности мне нужно использовать некоторые собственные запросы для вставки новых объектов в базу данных. У меня есть очень сложный уровень сохраняемости JPA, который управляет обычным чтением и записью сущностей, и я хотел бы использовать этот уровень постоянства для выполнения собственных запросов.
Я знаю, что мне нужны методы EntityManager#createNativeQuery(String) и Query#executeUpdate для достижения моей цели.
Моя текущая проблема заключается в том, что я также хотел бы получить сгенерированный идентификатор вновь вставленной строки. Я знаю, что это возможно с помощью JDBC или SpringPersistence, но есть ли способ получить эти идентификаторы из собственного запроса JPA?
1 ответ
Чаще всего это зависит от БД, и если вы можете сделать это с помощью JDBC, вы можете сделать это также с помощью собственного запроса JPA. В основном вам нужно выполнить (специфичный для БД) дополнительный запрос, чтобы получить вставленный идентификатор.