首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法让spring boot自动创建数据库架构

无法让spring boot自动创建数据库架构
EN

Stack Overflow用户
提问于 2014-11-12 15:47:00
回答 18查看 331.1K关注 0票数 91

我无法让spring boot在启动时自动加载我的数据库模式。

这是我的application.properties:

代码语言:javascript
复制
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=test
spring.datasource.password=
spring.datasource.driverClassName = com.mysql.jdbc.Driver

spring.jpa.database = MYSQL

spring.jpa.show-sql = true

spring.jpa.hibernate.ddl-auto = create
spring.jpa.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
spring.jpa.hibernate.naming_strategy = org.hibernate.cfg.ImprovedNamingStrategy

这是我的Application.java:

代码语言:javascript
复制
@EnableAutoConfiguration
@ComponentScan
public class Application {
    public static void main(final String[] args){
        SpringApplication.run(Application.class, args);
    }
}

以下是一个示例实体:

代码语言:javascript
复制
@Entity
@Table(name = "survey")
public class Survey implements Serializable {

    private Long _id;

    private String _name;

    private List<Question> _questions;

    /**
     * @return survey's id.
     */
    @Id
    @GeneratedValue(strategy = IDENTITY)
    @Column(name = "survey_id", unique = true, nullable = false)
    public Long getId() {
        return _id;
    }

    /**
     * @return the survey name.
     */
    @Column(name = "name")
    public String getName() {
        return _name;
    }


    /**
     * @return a list of survey questions.
     */
    @OneToMany(mappedBy = "survey")
    @OrderBy("id")
    public List<Question> getQuestions() {
        return _questions;
    }

    /**
     * @param id the id to set to.
     */
    public void setId(Long id) {
        _id = id;
    }

    /**
     * @param name the name for the question.
     */
    public void setName(final String name) {
        _name = name;
    }

    /**
     * @param questions list of questions to set.
     */
    public void setQuestions(List<Question> questions) {
        _questions = questions;
    }
}

你知道我做错了什么吗?

EN

回答 18

Stack Overflow用户

发布于 2017-03-11 09:00:57

代码语言:javascript
复制
@SpringBootApplication
@EnableConfigurationProperties
@EntityScan(basePackages = {"com.project.ppaa.model"})  // scan JPA entities
public class Application {

  private static ConfigurableApplicationContext applicationContext;

  public static void main(String[] args) {
    Application.applicationContext = SpringApplication.run(Application.class, args);
  }
}

它应该会自动工作,但如果它不能工作,您可以输入基本包

代码语言:javascript
复制
@EntityScan(basePackages = {"com.project.ppaa.model"})  // scan JPA entities manually
票数 22
EN

Stack Overflow用户

发布于 2018-05-22 05:59:57

使用以下两个设置可以正常工作。

代码语言:javascript
复制
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=create
票数 14
EN

Stack Overflow用户

发布于 2018-09-15 16:07:23

您只需像这样添加createDatabaseIfNotExist=true

代码语言:javascript
复制
spring.datasource.url=jdbc:mysql://localhost:3306/test?createDatabaseIfNotExist=true&amp;amp;useUnicode=true&amp;amp;characterEncoding=utf-8&amp;amp;autoReconnect=true

添加到application.properties文件中

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26881739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档