无法启动Spring以自动创建数据库架构

我无法启动启动时自动启动数据库架构的Spring Boot。

这是我的application.properties:

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:

@EnableAutoConfiguration

@ComponentScan

public class Application {

public static void main(final String[] args){

SpringApplication.run(Application.class, args);

}

}

这是一个示例实体:

@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;

}

}

有什么想法我做错了吗?

回答:

有几种可能的原因:

  1. 你的实体类在与之相对的同一个子包中,或者在一个子包中,@EnableAutoConfiguration.如果没有,则你的spring应用不会看到它们,因此不会在db中创建任何内容
  2. 检查你的配置,似乎你正在使用某些hibernate特定选项,尝试将其替换为:

spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect

spring.jpa.hibernate.ddl-auto=update

spring.datasource.driverClassName=com.mysql.jdbc.Driver

spring.datasource.url=jdbc:mysql://localhost:3306/test

spring.datasource.username=test

spring.datasource.password=

  1. application.properties必须在src/main/resources文件夹中。

如果你没有正确指定方言,它可能会尝试默认与引导内存数据库捆绑在一起,并且(与我一样)我会看到它尝试连接到本地HSQL实例(请参阅控制台输出),并且无法更新模式。

以上是 无法启动Spring以自动创建数据库架构 的全部内容, 来源链接: utcz.com/qa/411275.html

回到顶部