Java JPA/Hibernate+;Postgres序列发生器
我全天都在尝试使用JPA/Hibernate从Postgres获取序列,但它始终为我提供: 信息:休眠: 调用tb_cdr_id_seq的下一个值 警告:SQL错误:0,SQLState:42601 错误:错误:在“调用”处或附近出现语法错误 严重:javax.persistence.PersistenceException:org.hibernate.exception.sqlgrammareexception:无法提取结果集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") @
@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