java - 不使用 Hibernate 创建表

标签 java spring hibernate jpa

我是 spring Mvc 的新手,我正在尝试通过 hibernate 创建数据库表。我以前做过,但现在表没有创建,我无法找出错误。

我的模型类别:

@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工作台创建数据库,但未在其中创建用户表。如果有人能帮助我,我会很高兴

最佳答案

有几个可能的原因:

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

检查您的配置

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

关于java - 不使用 Hibernate 创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44154066/

相关文章:

java - 配置自定义 HibernateItemWriter 时获取 "Either HibernateOperations or SessionFactory must be provided"

java - 如何在java中对List中的map进行排序

java - 使用 PDFClown 展平表单会引发 IndexOutOfBounds 异常

java - 我可以让记事本不对我的文件进行编码吗?

java - 覆盖方法上的类级别 @Path 注释

java - 部署到 Tomcat 的 Spring boot WAR 和缺少静态资源的上下文

java - Spring Boot中如何导入xml文件?

java - Spring data JPA 检索两个日期之间的数据不起作用

java - Jackson JSON、REST 数据绑定(bind)和 HashMap 问题

java - 为什么不推荐使用 HibernateTemplate?