Spring Boot 不会在 Postgres 中创建表

问题描述 投票:0回答:6

我正在尝试基于实体生成架构表。但没有创建表。怎么了?

实体示例:

@Entity
@NoArgsConstructor
@Getter @Setter
public class User {
    @Id @GeneratedValue(strategy = GenerationType.AUTO)
    public Long id;

    public String username;
    public String password;

    public User(String username, String password) {
        this.username = username;
        this.password = password;
    }

    public User(String username) {
        this(username, username + "pass");
    }
}

application.properties

spring.datasource.url=jdbc:postgresql://localhost:5432/dbtest
spring.datasource.username=vssekorin
spring.datasource.password=
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto=update

依赖关系:

compile('org.springframework.boot:spring-boot-starter-data-jpa')
runtime('com.h2database:h2')
compile('org.telegram:telegrambots:3.6.1')
runtime('org.postgresql:postgresql')
compileOnly('org.projectlombok:lombok')
testCompile('org.springframework.boot:spring-boot-starter-test')

警告:

GenerationTarget encountered exception accepting command : Error executing DDL via JDBC Statement

java postgresql spring-boot spring-data
6个回答
15
投票

应该是:

spring.jpa.generate-ddl = true

在你的

application.properties

或者您可以更改此行:

spring.jpa.hibernate.ddl-auto=update

spring.jpa.hibernate.ddl-auto=create

更多细节:Spring数据库初始化


2
投票

只需将

spring.jpa.hibernate.ddl-auto
update
更改为
create


0
投票

尝试添加此属性 spring.datasource.driverClassName=org.postgresql.Driver

并将 spring.jpa.hibernate.ddl-auto 从 update 更改为 create


0
投票

实体(名称=“用户”) postgresql 无法创建名为 user 的表 和

spring.jpa.hibernate.ddl-auto=create

0
投票

就我而言,我在主应用程序类之外创建了一个实体包;

示例:

错了

正确


0
投票

我遇到了同样的问题,就我而言,这是我在 Application.java 类所在的根文件夹之外创建的包模型。

© www.soinside.com 2019 - 2024. All rights reserved.