postgresql和jpa:关系不存在
我再次请求您的precios帮助解决Hibernate、Springboot和Postgresql的问题。 在我的项目中,我读写了几十个表,我对每个表都使用了相同的配置,但其中一个表出现了一些问题: 这是映射我的表的类:postgresql和jpa:关系不存在,postgresql,hibernate,jpa,annotations,mapping,Postgresql,Hibernate,Jpa,Annotations,Mapping,我再次请求您的precios帮助解决Hibernate、Springboot和Postgresql的问题。 在我的项目中,我读写了几十个表,我对每个表都使用了相同的配置,但其中一个表出现了一些问题: 这是映射我的表的类: package com.mycompany.ingestion.entities.mappingdb; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax
package com.mycompany.ingestion.entities.mappingdb;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
@Entity
@Table(name="td_titauto")
public class TdTitAuto {
@Id
@SequenceGenerator(name = "seq_td_titauto", sequenceName = "seq_td_titauto", allocationSize=1)
@GeneratedValue(generator = "seq_td_titauto", strategy = GenerationType.SEQUENCE)
private Long idTitAuto;
private String idAuto;
public Long getIdTitAuto() {
return idTitAuto;
}
public void setIdTitAuto(Long idTitAuto) {
this.idTitAuto = idTitAuto;
}
public String getIdAuto() {
return idAuto;
}
public void setIdAuto(String idAuto) {
this.idAuto = idAuto;
}
}
当我运行项目时,出现以下错误:
错误:列tdtitauto0\uID\u tit\u auto不存在
提示:也许您想引用列“tdtitauto0\uid\u titauto”
DB上的表名为td_titaut。如果在注释@Table上添加架构名称,则不会发生任何更改,但如果删除@Table注释,则会出现以下错误:
错误:关系“td_tit_auto”不存在
在这种情况下,我不知道为什么要添加下划线字符(表名为td_titauto,只有一个下划线)
我还尝试使用配置文件代替和以及注释,但没有任何改变。
有什么建议吗?
非常感谢你,我真的很感激
我的问候
Steph数据库中似乎有一个名为
td\u titauto
的表,但实体的默认名称是td\u tit\u auto
。这可能是因为实体名称是TdTitAuto
,而不是TdTitAuto
Hibernate ORM希望表中有一列名为id\u tit\u auto
,但我怀疑数据库中的列名是id\u titauto
。
因此,您需要通过以下方式更改映射:
@Entity
@Table(name="td_titauto")
public class TdTitAuto {
@Id
@Column(name="id_titauto")
@SequenceGenerator(...)
@GeneratedValue(...)
private Long idTitAuto;
}
假设id为的列的名称为id\u titauto
或许,这也会起作用:
@Entity
public class TdTitauto {
@Id
@SequenceGenerator(...)
@GeneratedValue(...)
private Long idTitauto;
}
哦,是的,现在它工作得很好。非常感谢你,我花了几天时间来解决这个问题。没问题,你能把这个标记为正确的解决方案吗?