Проблема решена. Проблема заключалась в том, что я использовал jdbc3. Использование jdbc4 решает проблему!автогенерированные ключи для гравия 2.4.3
Я модернизировал от grails 2.3.6 до grails 2.4.3. Это означало переход из спящего режима 3.6.10.3 в спящий режим 3.6.10.17. Я использую базу данных PostgreSQL с последовательностью для генерации идентификатора для всех объектов:
CREATE SEQUENCE hibernate_sequence;
CREATE TABLE betygstyp (
id bigint PRIMARY KEY DEFAULT nextval('hibernate_sequence'),
...
Я надеюсь, что не придется менять базу данных, которая работала хорошо, прежде чем (с Грааль 2.3.6 и т.д.)
Когда я теперь пытаюсь сохранить новый объект, я получаю сообщение об ошибке:
org.postgresql.util.PSQLException: Возвращение автогенерируемых ключей не поддерживаются. на
org.postgresql.jdbc3.AbstractJdbc3Connection.prepareStatement (AbstractJdbc3Connection.java:448)
Я также попытался это с Hibernate 4.3.5.5, которая дает ту же самую проблему.
Я подозреваю, что вам нужна новая конфигурация, но что? Я использую конфигурацию по умолчанию, используемую в Grails, и не использую конфигурацию xml для спящего режима.
Вы пытались использовать 'bigserial' вместо стандартного с nextval? –
Если вы решили свою проблему (обновив до современного драйвера), добавьте это как ответ и примите этот ответ. –
Btw: возможно, это было не просто обновление с jdbc3 на jdbc4: 'getGeneratedKeys()' отлично работает в postgresql-8.4-702.jdbc4.jar, postgresql-8.4-703.jdbc3.jar postgresql-9.3-1102.jdbc3 .jar и postgresql-9.3-1102.jdbc4.jar –