我正在尝试整天用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打印一样......
我该怎么办?
由于
答案 0 :(得分:4)
Hibernate没有自动检测方言,或者它被覆盖了。明确将hibernate.dialect
设置为org.hibernate.dialect.PostgreSQLDialect
即可解决问题。