我无法启动启动时自动启动数据库架构的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.
如果没有,则您的spring应用不会看到它们,因此不会在db中创建任何内容检查您的配置,似乎您正在使用某些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
文件夹中。
如果您未正确指定方言,则可能会尝试默认将其与启动内存数据库捆绑在一起(并且与我一样),我可能会发现它尝试连接到本地HSQL
实例(请参阅控制台输出),并且无法更新模式。
问题内容: 我正在使用PostgreSQL和Spring 4,希望我的应用在运行时自动创建数据库。 我的实体类是: HibernateConfig.java application.properties 但是,当我运行SQL访问表User时,将出现错误:表’User’不存在。 如何使Hibernate自动创建数据库? 问题答案: 该物业将为您解决问题。创建SessionFactory时,它将自动验
我正在使用PostgreSQL和Spring 4,并希望我的应用程序在运行时自动创建数据库。 我的实体类是: HibernateConfig。Java语言 application.properties 但当我运行SQL访问表User时,会出现错误:表“User”不存在。 如何使Hibernate自动创建数据库?
我有一个 Spring 引导 API,它使用 jpa 和 postgresql,并在我运行应用程序时自动创建表。 但出现以下错误消息: 这是我的应用程序。属性
问题内容: (我已经看过[H2数据库在内存中-通过Spring /Hibernate问题的初始化架构;在这里不适用。) 我想知道H2中是否有设置,允许我在连接到它时自动创建一个模式。如果有帮助,我只对内存中的情况感兴趣。 H2在URL的末尾支持各种用分号分隔的修饰符,但是我找不到用于自动创建模式的修饰符。有这样的功能吗? 问题答案: 是的,H2支持在连接时执行SQL语句。您可以运行脚本,也可以只运
这个错误正在显示,我检查了很多地方,但找不到解决方案。 我无法启动kvlite,其他系统有相同的java和kvlite配置。它返回。 null
我有一个spring-boot项目,该项目创建了一个H2内存数据库,其中包含由带有@Entity注释的类自动生成的表。我现在已经创建了另一个项目来连接到同一个数据库,但是每当我运行新的spring项目时,我认为创建了一个新的数据库来覆盖另一个数据库。 更新 尝试przemek hertel给出的答案,我得到以下错误: