当前位置: 首页 > 知识库问答 >
问题:

JPA/Hibernate Postgres序列生成器

傅星光
2023-03-14

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

信息:Hibernate:调用tb_cdr_id_seq的下一个值警告:SQL错误: 0,SQLState: 42601错误:错误:语法错误在或附近“调用”严重:javax.persistence.持久性异常:org.hibernate.exception.SQLGrammar异常:无法提取结果集

@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个答案

甘明朗
2023-03-14

Hibernate没有自动检测方言,或者它正在被覆盖。设置hibernate。方言显式发送至组织。冬眠地方话PostgreSql方言解决了这个问题。

 类似资料:
  • 我有以下SQL查询。 我已经使用jpa标准构建器动态构建查询。 ORDER BY子句的表达式#1不在GROUP BY子句中,并且包含非聚合列“COL B”,该列在功能上不依赖于GROUP BY子句中的列;这与sql_mode=only_full_group_by不兼容 我理解在这种模式下,sql验证查询,我的查询失败。如何使用jpa标准生成器创建别名,以便执行的实际语句包含sum列的适当别名? 注

  • 问题内容: 在我的应用程序中,我正在为发票建模。在我国(意大利),每张发票必须有一个唯一的无序列号,每年必须从1重新开始。 我对实现它的最佳方法进行了漫长而艰辛的思考,但是我还没有找到一个很好的指南。现在,我有一个自定义的同步方法,在该方法中,我可以获取最后使用的ID: 这种方法的问题是不是很安全,因为开发人员应该知道仅应使用该特定服务进行保存。 相反,我想要更多对开发人员隐藏的方法。我想在中使用

  • 问题内容: 下面的查询生成一行DNA序列 结果-dna CCCGGTTCTCCCCATGCAGG 我想生成10个随机DNA序列 问题答案: 像这样吗?

  • 问题内容: 我正在使用oracle 11g,Java(struts2)和Hibernate开发应用程序。 我有一个名为mytemp的表,其列mytemp_id为NUMBER(22,0)类型。 在我的mytemp.hbm.xml文件中,ID如下所示 在我的Oracle数据库中,创建了名为“ MYTEMP_TEMP_ID_SEQ”的序列,并在Oracle中正常工作。 现在,当我尝试使用hibernat

  • 如何像 Rxt-AA0001 Rxt-AA0002 Rxt-AA0003 ... ... Rxt-AA9999 Rxt-AB0001 Rxt-AB0002 用这个 这是我在模型中的用户id 我能够生成Alpha数字id,但我不确定如何增加字符

  • 我正在尝试使用@ManyToOne和@OneToMany映射实体表。映射列位于名为“internal_plan_id”的子表中。根据要求,我不能更改名称。下面是两个实体表:父表 儿童桌: 我得到错误为:错误:关系“financial_plan_subplan”的列“internal_plan_id_internal_plan_id”不存在。 financial_subplan中用于映射的现有列名是