【发布时间】:2014-09-08 09:42:21
【问题描述】:
问题已解决。问题是我使用了jdbc3。使用jdbc4解决问题!
我已从 grails 2.3.6 升级到 grails 2.4.3。 这意味着从休眠 3.6.10.3 更改为休眠 3.6.10.17。 我使用带有序列的 postgresql 数据库为所有对象生成 id:
CREATE SEQUENCE hibernate_sequence;
CREATE TABLE betygstyp (
id bigint PRIMARY KEY DEFAULT nextval('hibernate_sequence'),
...
我希望不必更改以前运行良好的数据库(使用 grails 2.3.6 等)
当我现在尝试保存新对象时,我收到以下错误消息:
org.postgresql.util.PSQLException:不支持返回自动生成的密钥。 在
org.postgresql.jdbc3.AbstractJdbc3Connection.prepareStatement(AbstractJdbc3Connection.java:448)
我也用 hibernate 4.3.5.5 尝试过这个,它给出了同样的问题。
我怀疑需要一些新的配置,但是什么? 我使用 Grails 中使用的默认配置,不使用任何 xml 配置进行休眠。
【问题讨论】:
-
您是否尝试使用
bigserial而不是nextval 的默认值? -
如果您解决了问题(通过升级到最新的驱动程序),请将其添加为答案并接受该答案。
-
顺便说一句:它一定不仅仅是从 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
标签: hibernate postgresql grails