繁体   English   中英

不使用 Hibernate 创建表

[英]Not creating table using Hibernate

我是 spring Mvc 的新手,我试图通过休眠创建数据库表。 我以前做过,但现在表没有创建,我无法弄清楚错误。

我的模特班:

@Entity
public class User implements Serializable, UserGetters{
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public Long id;

    @Column(unique=true)
    private String logonEmail;

    private String name;

    @Column(updatable=false)
    private String password;

    @JsonIgnore
    @Column(nullable = false, columnDefinition = "TINYINT(1)")
    private boolean isEmailVerified;

    // getters and setters

}

应用程序属性:

        spring.datasource.url=jdbc:mysql://localhost:3306/basicdb?createDatabaseIfNotExist=true
        spring.datasource.username=root
        spring.datasource.password=ace123
        spring.data.rest.basePath=/api


        spring.datasource.driver-class-name=com.mysql.jdbc.Driver
        spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
        spring.jpa.hibernate.ddl-auto=create
        allowed.origins=http://localhost:9000
        logging.level.org.springframework.security=DEBUG
        logging.level.org.hibernate.SQL=DEBUG
        logging.level.com.reservos=DEBUG
        logging.level.com.sendgrid=DEBUG
        logging.level.org.hibernate.tool.hbm2ddl=debug
        server.port=3000

pom.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <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>

        <groupId>org.springframework</groupId>
        <artifactId>gs-spring-boot</artifactId>
        <version>0.1.0</version>

        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.5.3.RELEASE</version>
        </parent>

        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
            <dependency>
                <groupId>org.springframework.data</groupId>
                <artifactId>spring-data-rest-webmvc</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-rest</artifactId>
            </dependency>

            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <scope>runtime</scope>
            </dependency>

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
            </dependency>

             <dependency>
            <groupId>org.hibernate.javax.persistence</groupId>
            <artifactId>hibernate-jpa-2.0-api</artifactId>
            <version>1.0.1.Final</version>
        </dependency>

            <!-- tag::actuator[] -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
            <!-- end::actuator[] -->
            <!-- tag::tests[] -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            <!-- end::tests[] -->
        </dependencies>

        <properties>
            <java.version>1.8</java.version>
        </properties>

        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
                <plugin>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <executions>
                        <execution>
                            <goals>
                                <goal>integration-test</goal>
                                <goal>verify</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>

    </project>

当我运行代码时,mysql workbench 创建了数据库,但没有在其中创建 User 表。 如果有人可以帮助我,我会很高兴

有几种可能的原因:

您的实体类与您使用 @EnableAutoConfiguration 进行类相同或位于相对的子包中。 如果没有,那么您的 spring 应用程序看不到它们,因此不会在 db 中创建任何内容

检查您的配置

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(请参阅控制台输出)实例并在更新架构时失败。

尝试删除:

columnDefinition = "TINYINT(1)"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM