2013-06-20 88 views
2

我想對於整天得到使用JPA/Hibernate的一個Postgres的序列,但它給了我所有的時間:JPA /休眠+ Postgres的SequenceGenerator

信息:休眠: 呼籲下一個值tb_cdr_id_seq 警告:SQL錯誤:0,SQLSTATE:42601 錯誤:錯誤:語法錯誤或接近 「通話」 重度: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,不甲肝e功能:調用下一個值....像休眠打印...

我該怎麼辦?

謝謝

+0

請出示SQL Hibernate是爲了產生和完整,確切的錯誤。查看PostgreSQL日誌('log_statement = on')或Hibernate日誌。在猜測,你可能使用了錯誤的SQL方言設置,或tb_cdr_id_seq'不存在的序列'。 –

+0

訣竅! TKS – tubadc

回答

3

Hibernate沒有自動檢測方言或它被覆蓋。設置hibernate.dialect明確地org.hibernate.dialect.PostgreSQLDialect解決了這個問題。