SpringBoot+PostgreSQL查询报错:column tenantenti0_.module_name不存在
PostgreSQL + JPA 查询报错:column tenantenti0_.module_name does not exist
查询tenant_info表所有数据时触发以下错误:
Caused by: org.postgresql.util.PSQLException: ERROR: column tenantenti0_.module_name does not exist
已尝试以下方案,均未解决问题:
- 在application.properties中添加配置:
spring.jpa.properties.hibernate.default_schema=${your-default-schema-name} - 确认表列名与代码均无驼峰命名问题
- 在实体类@Table注解中指定schema为public(默认schema本无需指定)
- 在实体类使用@NamedQuery、在仓库类使用@Query,问题依旧
Entity类
@Entity @Table(name = "tenant_info", schema = "public") @NamedQuery(name = "TenantEntity.findAll", query = "SELECT t FROM TenantEntity t") @ApplicationScope public class TenantEntity implements Serializable { private static final long serialVersionUID = 1L; @Id @Column(name = "id") private int id; @Column(name = "tenant_id") private String tenantId; @Column(name = "module_name") private String moduleName; @Column(name = "url") private String url; @Column(name = "username") private String userName; @Column(name = "password") private String password; // getter和setter方法 }
Repository类
@Repository public interface TenantRepository extends JpaRepository<TenantEntity, String> { public List<TenantEntity> findAll(); public TenantEntity findByTenantId(String tenantId); public List<TenantEntity> findByModuleName(String moduleName); }
建表SQL
CREATE TABLE IF NOT EXISTS public.tenant_info ( id integer NOT NULL, tenant_id text COLLATE pg_catalog."default" NOT NULL, module_name text COLLATE pg_catalog."default" NOT NULL, url text COLLATE pg_catalog."default" NOT NULL, username text COLLATE pg_catalog."default" NOT NULL, password text COLLATE pg_catalog."default" NOT NULL, CONSTRAINT tenant_info_pkey PRIMARY KEY (id) ) TABLESPACE pg_default;
表结构截图
内容的提问来源于stack exchange,提问作者Tushar Kumar
相关产品推荐
相关产品推荐

