如何从Spring Boot应用程序正确生成Postgres表?

时间:2019-07-17 10:21:48

标签: postgresql spring-boot

我正在使用spring-boot为未来的Angular前端开发RESTFUL API。我在将实体创建到postgres表时遇到了这个问题。

检查与数据库的连接,一切正常。使用mvn clean install和mvn spring-boot run命令可以生成正常的tomcat部署,而不会出现任何错误。但是没有创建表

这是我的代码: 实体:

@Entity
@Table(name = "questions")
public class Question {
    @Id
    @GeneratedValue(generator = "question_generator")
    @SequenceGenerator(
            name = "question_generator",
            sequenceName = "question_sequence",
            initialValue = 1000
    )
    private Long id;

    @NotBlank
    @Size(min = 3, max = 100)
    private String title;

    @Column(columnDefinition = "text")
    private String description;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Question() {

    }





}

application.propreties:

# ===============================
# DATABASE CONNECTION
# ===============================

spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/postgres
spring.datasource.username=postgres
spring.datasource.password=postgres

# ===============================
# JPA / HIBERNATE
# ===============================

spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect


# Fix Postgres JPA Error:
# Method org.postgresql.jdbc.PgConnection.createClob() is not yet implemented.
spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false

这是我的仓库:

import model.Question;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface QuestionRepository extends JpaRepository<Question, Long> {
}

2 个答案:

答案 0 :(得分:0)

尝试将spring.jpa.hibernate.ddl-auto属性更改为create值。

答案 1 :(得分:0)

我能够通过更改实体包并使其对应用程序可见来解决此问题。现在,它工作正常。 主要软件包名称是:com.testAppBlaBla 实体的软件包应为com.testAppBlaBla.model

否则将不会生成实体。