hibernate没有创建表但没有错误消息

时间:2016-09-09 11:29:13

标签: java eclipse hibernate spring-boot

我正在做一个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'以防可能出现问题。

6 个答案:

答案 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

http://docs.spring.io/spring-boot/docs/1.2.3.RELEASE/reference/htmlsingle/#common-application-properties

答案 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”。

希望这会有所帮助。