只读事务中的序列nextval- postgresql 9

时间:2011-07-20 16:54:18

标签: hibernate spring postgresql

我最近从postgresql8升级到postgresql9。我有一个标记为@Transactional(readonly = true)的方法,并在序列上调用nextval。它在Postgres8中运行良好但在Postgres9中失败了。 我环顾四周但没有具体的东西。有没有人遇到这个问题。 我可以编写一个拦截器来改变要写入的事务,但是想知道这是否现在是一个新限制,可以通过postgresq9上的某些配置设置进行更改

1 个答案:

答案 0 :(得分:1)

  

05/11/2011 02:29 PM,Dae-man Yang写道:

     

我将postgresql从8.4.2升级到9.0.4。但我有一个问题。该   错误消息'无法在只读事务'

中执行nextval()      

请帮帮我。

     

nextval()修改一个序列,所以你不应该在一个序列中执行它   只读事务。 Pg 9.0.4强制执行此操作,但它仍然是一个错误   在任何试图在只读事务中使用nextval()的东西   在9.0之前,Pg只是没有注意到并警告你。

     

- Craig Ringer

http://archives.postgresql.org/pgsql-general/2011-05/msg00373.php