首页 > 解决方案 > 无法使用 Hibernate 访问 Postgres 数据库

问题描述

我已经在寻找解决方案,但找不到任何解决方案。

我的问题是,我无法通过 Hibernate 访问名为 IncomeOutgo 的 Postgres 数据库。

调用我的 Thymeleaf/HTML 网站时,我总是收到此错误消息。

在此处输入图像描述

我的 application.properties 看起来像

spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto=none
spring.jpa.hibernate.show-sql=true
spring.datasource.url=jdbc:postgresql://192.168.0.227:5432/IncomeOutgo
spring.datasource.username=postgres
spring.datasource.password=XXX
#spring.jpa.properties.hibernate.format_sql=true

我的表在 Postgres (DBeaver) 中的样子也是如此:

在此处输入图像描述

最后但并非最不重要的是,我的域/实体看起来像:

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Entity
@Table
public class IncomeOutgo extends AbstractPersistable<Long> {

    @Version
    @Column(name ="id")
    private Long id;

    @Column(name="dayofweek")
    private Date dayofweek;

    @Size(min = 5, max = 50)
    @Column(name ="person")
    private String person;

    @Min(0)
    @Column(name ="version")
    private Integer version;

    @Column(name="income")
    private int income;

    @Column(name="outgo")
    private int outgo;
}

也许,有人可以告诉我我的错误是什么?

提前致谢!

标签: postgresqlspring-boothibernate

解决方案


我现在可以让它工作了。Lesiak 对模式名称的提示让我做了一个解决方法。

我创建了一个新数据库:incomeoutgo(小写字母),并在 schema:public 下创建了一个新表:incomeoutgo 也带有小写字母。

在此处输入图像描述

我的域定义也是这样的:

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Entity
@Table(name="incomeoutgo", schema = "public")
public class IncomeOutgo extends AbstractPersistable<Long> {

    @Version
    @NotNull
    @Column(name ="id")
    private Long id;

    @Column(name="dayofweek")
    private Date dayofweek;

    @Size(min = 5, max = 50)
    @Column(name ="person")
    private String person;

    @Min(0)
    @Column(name ="version")
    private Integer version;

    @Column(name="income")
    private int income;

    @Column(name="outgo")
    private int outgo;
}

推荐阅读