Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 冬眠可以';不重命名就无法保存实体_Java_Mysql_Hibernate - Fatal编程技术网

Java 冬眠可以';不重命名就无法保存实体

Java 冬眠可以';不重命名就无法保存实体,java,mysql,hibernate,Java,Mysql,Hibernate,我有一个很奇怪的问题,我不明白它的原因 我试图用一个字段(@id groupName)、getter和setter保存简单对象(Group.class)。 当我尝试运行我的程序时,出现了一个异常: 线程“main”org.hibernate.Exception.sqlgrammareexception中出现异常:无法执行JDBC 批量更新在 原因:java.sql.BatchUpdateException:您的 SQL语法;查看与MySQL服务器对应的手册 用于使用接近“组(groupName

我有一个很奇怪的问题,我不明白它的原因

我试图用一个字段(@id groupName)、getter和setter保存简单对象(Group.class)。 当我尝试运行我的程序时,出现了一个异常:

线程“main”org.hibernate.Exception.sqlgrammareexception中出现异常:无法执行JDBC 批量更新在

原因:java.sql.BatchUpdateException:您的 SQL语法;查看与MySQL服务器对应的手册 用于使用接近“组(groupName)值的正确语法的版本 第1行的“测试”

但是,如果我指定实体的名称(组的不同名称),则一切都可以正常工作。 你能解释一下我做错了什么吗

代码:

hibernate.cfg.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.bytecode.use_reflection_optimizer">false</property>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">root</property>
        <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="show_sql">true</property>
        <property name="hbm2ddl.auto">create</property>

        <mapping class="com.globallogic.dto.Group"></mapping>


    </session-factory>

</hibernate-configuration>

import javax.persistence.*;
DataSender.class

public class DataSender {
    private SessionFactory sessionFactory;
    public DataSender() {
        sessionFactory = new Configuration().configure()
                .buildSessionFactory();
    }
    public void sendData(Object... objects) {
        Session session = sessionFactory.openSession();
        if (session.isConnected()) {

            System.out.println("ALL IS GOOD");
            session.beginTransaction();

            for (Object user: objects) {
                session.persist(user);
            }
            System.out.println();
            session.getTransaction().commit();
            session.close();
            System.out.println("Connection is closed");
        }

        sessionFactory.close();
    }

}
主类

public class Main {

    public static void main(String[] args) {


        DataSender ds = new DataSender();

        Group group = new Group();
        group.setGroupName("Test");
        ds.sendData(group);

    }
}

Group
是一个SQL关键字,您需要:


嗯。。好的,谢谢(当我使用MySQL工作台手动创建组表时,它工作得很好),可能是MySQL工作台自动引用标识符。
public class Main {

    public static void main(String[] args) {


        DataSender ds = new DataSender();

        Group group = new Group();
        group.setGroupName("Test");
        ds.sendData(group);

    }
}
@Entity
@Table(name = "`Group`")
public class Group {
  ....