我正在做一个Spring Boot项目,并试图用hibernate方式创建一个表,当我运行该应用程序并且服务器正常启动时,我没有收到任何错误消息,但是没有创建该表。
StatusUpdate.java
package model; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; import javax.persistence.PrePersist; @Entity @Table(name="status_update") public class StatusUpdate { @Id @Column(name="id") @GeneratedValue(strategy=GenerationType.AUTO) private Long id; @Column(name="text") private String text; @Column(name="added") @Temporal(TemporalType.TIMESTAMP) private Date added; @PrePersist protected void onCreate() { if (added == null) { added = new Date(); } } public StatusUpdate(String text) { this.text = text; } public StatusUpdate(String text, Date added) { this.text = text; this.added = added; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getText() { return text; } public void setText(String text) { this.text = text; } public Date getAdded() { return added; } public void setAdded(Date added) { this.added = added; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((added == null) ? 0 : added.hashCode()); result = prime * result + ((id == null) ? 0 : id.hashCode()); result = prime * result + ((text == null) ? 0 : text.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; StatusUpdate other = (StatusUpdate) obj; if (added == null) { if (other.added != null) return false; } else if (!added.equals(other.added)) return false; if (id == null) { if (other.id != null) return false; } else if (!id.equals(other.id)) return false; if (text == null) { if (other.text != null) return false; } else if (!text.equals(other.text)) return false; return true; } }
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.0.RELEASE</version> </parent> <properties> <java.version>1.8</java.version> <tiles.version>3.0.7</tiles.version> </properties> <groupId>com.voja</groupId> <artifactId>spring-boot-tutorial</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency> <dependency> <groupId>org.apache.tiles</groupId> <artifactId>tiles-core</artifactId> <version>${tiles.version}</version> </dependency> <dependency> <groupId>org.apache.tiles</groupId> <artifactId>tiles-jsp</artifactId> <version>${tiles.version}</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <version>1.3.5.RELEASE</version> </dependency> </dependencies> <packaging>war</packaging> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <executable>true</executable> </configuration> </plugin> </plugins> </build> </project>
application.properties
debug=true spring.datasource.url=jdbc:mysql://localhost:3306/springboottutorial spring.datasource.username=springboot spring.datasource.password=hello spring.datasource.driverClassName=com.mysql.jdbc.Driver spring.jpa.hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect spring.jpa.generate-ddl=true spring.jpa.show-sql=true logging.level.org.hibernate.SQL=DEBUG
我dialect在此行下还有一条黄线spring.jpa.hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect,上面写着“ spring.jpa.hibernate.dialect”是一个未知属性。您的意思是说“ spring.jpa.hibernate.ddl- auto”,以防可能出现问题。
dialect
spring.jpa.hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
通过阅读另一篇文章发现了问题,实际上其中的包和类存在问题,他们找不到彼此,因此未创建表。
我创建了一个新项目,并将所有类放入同一包中,并且可以正常工作,因此我将基于此修复现有项目。