Spring Boot 不在 Postgres 中创建表
Posted
技术标签:
【中文标题】Spring Boot 不在 Postgres 中创建表【英文标题】:Spring Boot doesn't create tables in Postgres 【发布时间】:2018-12-19 15:42:21 【问题描述】:我正在尝试基于实体生成架构表。但是没有创建表。怎么了?
实体示例:
@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
【问题讨论】:
您能否显示此“GenerationTarget 遇到异常接受命令:通过 JDBC 语句执行 DDL 时出错”的完整日志 【参考方案1】:应该是:
spring.jpa.generate-ddl = true
在你的application.properties
。
或者你可以改变这一行:
spring.jpa.hibernate.ddl-auto=update
在
spring.jpa.hibernate.ddl-auto=create
更多详情:Spring Database initialization
【讨论】:
【参考方案2】:只需将 spring.jpa.hibernate.ddl-auto
从 update
更改为 create
。
【讨论】:
【参考方案3】:尝试添加此属性 spring.datasource.driverClassName=org.postgresql.Driver
并将 spring.jpa.hibernate.ddl-auto 从更新更改为创建
【讨论】:
嗨@Aziz - 欢迎来到 Stack Overflow。在提供被 OP(原始帖子)作者接受的答案后 2.5 年以上,您的答案似乎没有添加任何新内容,或者您认为有,那么请编辑接受的答案以添加您的新见解。以上是关于Spring Boot 不在 Postgres 中创建表的主要内容,如果未能解决你的问题,请参考以下文章
在 Spring Boot 中使用 Copy 命令从 Postgres 导出数据
如何使用 Spring Boot JPA 在 Postgres 中存储几何点?
Spring Boot + Hibernate + Postgres - 不创建表