我正在做一个spring-boot项目并尝试使用hibernate创建一个表,当我运行应用程序并且服务器正常启动时我没有错误,但是表没有被创建。
StatusUpdate.java
<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>
的pom.xml
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
application.properties
dialect
我在spring.jpa.hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
这一行.overlay .overlay-modal {
line-height: 200px;
position: absolute !important;
top: 50%;
left: 50%;
border-radius: 5px;
z-index: 11;
margin: 0 auto;
-webkit-transform: translate(-50%);
-moz-transform: translate(-50%);
-ms-transform: translate(-50%);
-o-transform: translate(-50%);
transform: translate(-50%);
}
下面还有一条黄线,上面写着“spring.jpa.hibernate.dialect”是一个未知属性。您的意思是'spring.jpa.hibernate.ddl-auto'以防可能出现问题。
答案 0 :(得分:1)
通过阅读另一篇文章找到问题,实际上包含其中的包和类存在问题,他们无法找到彼此,因此表格没有创建。
我创建了一个新项目并将所有类放在同一个包中并且它工作正常,因此我将基于此修复现有项目。
答案 1 :(得分:0)
如果您使用的是jpa和hibernate,请在 application.properties 文件中添加以下属性
spring.jpa.hibernate.ddl-auto=update
答案 2 :(得分:0)
尝试将此添加到您的application.properties:
spring.jpa.hibernate.ddl-auto=create
答案 3 :(得分:0)
对于 application.properties 文件,请按照以下链接进行操作
就像:
spring.jpa.generate-ddl=true
然后添加
spring.jpa.hibernate.ddl-auto=create-drop
答案 4 :(得分:0)
它不适合您,因为您没有使用它,我的意思是,JPA在需要使用它时创建数据库。您可以尝试编写使用它的测试,或添加一个休息库来尝试它,只需将其添加到您的application.properties;
spring.jpa.hibernate.ddl-auto=create
然后创建此界面:
@RepositoryRestResource
public interface IStatusRepository extends CrudRepository<StatusUpdate, Long> {
}
您还需要此依赖项;
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
创建测试更容易,但我想你正在尝试构建一个休息网络服务,所以试试这个看看它是否有效=)
答案 5 :(得分:0)
有时,您选择的属性名称中会出现问题。如文本,值等,它们是数据库的保留关键字。因此,您可以看到创建表的日志,但不会创建表。要解决此问题,只需在bean中更改属性名或提供显式的列名即可。
示例:mysql不支持属性或列名“ value”。因此,我的表未创建。我必须将其重命名为“ valueString”。
希望这会有所帮助。