java - hibernate : Unable to execute schema management to JDBC target

标签 java spring hibernate

我真的被困在这里,我需要帮助,我一直在尝试运行我的应用程序并让 hibernate 使用我的 java 实体创建表,但它不断引发此异常:

无法对 JDBC 目标执行架构管理 [创建表答案 (id_answer bigint not null auto_increment, order integer, text varchar(255), Question_id_question bigint, Primary key (id_answer))]

说我的SQL语法有错误,尽管我没有写任何sql,但我让hibernate处理这一切。

以下是我的类和配置:

Answer.java:

package com.sfm.elearn.business.entities;

    import java.io.Serializable;
    import java.util.List;
    import javax.persistence.CascadeType;
    import javax.persistence.Entity;
    import javax.persistence.FetchType;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.ManyToOne;
    import javax.persistence.OneToMany;
    import javax.persistence.OneToOne;
    import com.fasterxml.jackson.annotation.JsonIgnore;
    @Entity
    public class Answer implements Serializable {
        @Id @GeneratedValue
        private Long idAnswer;
        private String text;
        private Integer order;
        @ManyToOne
        @JsonIgnore
        private Question question;
        public Answer() {
            super();
            // TODO Auto-generated constructor stub
        }
        public Answer(String text, Integer order, Question question) {
            super();
            this.text = text;
            this.order = order;
            this.question = question;
        }
        public Long getIdAnswer() {
            return idAnswer;
        }
        public void setIdAnswer(Long idAnswer) {
            this.idAnswer = idAnswer;
        }
    }

这是我的配置:

spring.datasource.url=jdbc:mysql://localhost:3306/ElearningBase

spring.datasource.username=root
spring.datasource.password=654321
spring.datasource.testWhileIdle=true
spring.datasource.validationQuery=SELECT 1

spring.jpa.show-sql=true

spring.jpa.hibernate.ddl-auto=update

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect

编辑:我发现了错误,属性“order”是一个保留的 SQL 关键字,这就是导致错误的原因,更改变量的名称解决了它!

最佳答案

如果 Hibernate 正在为您创建表,那么您的 hibernate.ddl-auto 属性应设置为“create”或“create-drop”。 update 选项意味着 Hibernate 期望您的表已经存在。请参阅:Hibernate hbm2ddl.auto possible values and what they do?

关于java - hibernate : Unable to execute schema management to JDBC target,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51724113/

相关文章:

java - Bean创建异常: Error creating bean with name 'sessionFactory'

java - Hibernate session.update 插入行而不是更新行

java - 形态学函数瓶颈的 OpenCV Android 程序

spring - Intellij 问题解决对 spring kotlin 的依赖

Spring AOP根据参数名获取方法参数值

java - Spring 数据 JPA : persist a many to may relationship in both directions

java - JPA 中的条件 where 子句

Java在类之间传递值时编译错误

java - im4java 和 imagemagick - 为什么重力参数不起作用?

java - 如何将填充添加到字节数组?