我无法启动启动时自动启动数据库架构的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; } }
有什么想法我做错了吗?
有几种可能的原因:
@EnableAutoConfiguration.
检查您的配置,似乎您正在使用某些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=
您application.properties必须在src/main/resources文件夹中。
application.properties
src/main/resources
如果您未正确指定方言,则可能会尝试默认将其与启动内存数据库捆绑在一起(并且与我一样),我可能会发现它尝试连接到本地HSQL实例(请参阅控制台输出),并且无法更新模式。
HSQL