JPA / Hibernate + Postgres SequenceGenerator

时间:2013-06-20 22:11:45

标签: java hibernate postgresql jpa sequence

我正在尝试整天用JPA / Hibernate从Postgres获取序列,但它给了我所有的时间:

信息:休眠:     为tb_cdr_id_seq调用下一个值 警告:SQL错误:0,SQLState:42601 错误:错误:“call”或其附近的语法错误 严重:javax.persistence.PersistenceException:org.hibernate.exception.SQLGrammarException:无法提取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打印一样......

我该怎么办?

由于

1 个答案:

答案 0 :(得分:4)

Hibernate没有自动检测方言,或者它被覆盖了。明确将hibernate.dialect设置为org.hibernate.dialect.PostgreSQLDialect即可解决问题。