JPA/Hibernate + Postgres SequenceGenerator



我整天都在尝试从JPA/Hibernate的Postgres中获得序列,但它一直给我:

Hibernate:

信息:调用tb_cdr_id_seq的下一个值警告:SQL Error: 0, SQLState: 42601ERROR: "call"处或附近有语法错误严重:javax.persistence.PersistenceException: org.hibernate.exception. sqlgrammareexception: cannot extract ResultSet

@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.dialect显式设置为org.hibernate.dialect.PostgreSQLDialect解决了这个问题。

最新更新