Java JPA/Hibernate+;Postgres序列发生器

Java JPA/Hibernate+;Postgres序列发生器,java,hibernate,postgresql,jpa,sequence,Java,Hibernate,Postgresql,Jpa,Sequence,我全天都在尝试使用JPA/Hibernate从Postgres获取序列,但它始终为我提供: 信息:休眠: 调用tb_cdr_id_seq的下一个值 警告:SQL错误:0,SQLState:42601 错误:错误:在“调用”处或附近出现语法错误 严重:javax.persistence.PersistenceException:org.hibernate.exception.sqlgrammareexception:无法提取结果集 @Entity @Table(name = "tb_cdr") @

我全天都在尝试使用JPA/Hibernate从Postgres获取序列,但它始终为我提供:

信息:休眠: 调用tb_cdr_id_seq的下一个值 警告:SQL错误:0,SQLState:42601 错误:错误:在“调用”处或附近出现语法错误 严重:javax.persistence.PersistenceException:org.hibernate.exception.sqlgrammareexception:无法提取结果集

@Entity
@Table(name = "tb_cdr")
@XmlRootElement
@SequenceGenerator(name = "tb_cdr_id_seq", sequenceName = "tb_cdr_id_seq", allocationSize=1)
public class Cdr implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "tb_cdr_id_seq")
    @Basic(optional = false)
    @Column(name = "id")
    private Long id;
....

}
Postgres版本是9.2,没有函数:调用下一个值。。。。就像Hibernate是打印

我该怎么办


谢谢

Hibernate没有自动检测方言,或者它被覆盖了。将
hibernate.dialogue
显式设置为
org.hibernate.dialogue.PostgreSqlDialogue
解决了此问题。

请显示正在生成的SQL hibernate以及完整、准确的错误。请参阅PostgreSQL日志(
log\u statement=on
)或Hibernate日志。猜测一下,您可能使用了错误的SQL方言设置,或者序列
tb\u cdr\u id\u seq
不存在。成功了!Tks