java - hibernate :MySQL

标签 java mysql hibernate

我有一个包含以下字段的类:

@Entity
@Table(name = "customers")
public class Customer {
    @Id
    int id;
    String name;
    String items;
    String when;
    String where;
    ... // getters and setters
}

我在 MySQL 数据库中创建了一个名为“customers”的表:
列:

id int(11) PK 
name varchar(45) 
items varchar(45) 
when varchar(45) 
where varchar(45)

我正在尝试将类添加到数据库中,如下所示:

Customer customer = new Customer();
customer.setId(1);
customer.setName("Rextuz");
customer.setItems("red_rose1");
customer.setWhen("1_1_2015");
customer.setWhere("len");
... // getting a session factory
Session session = sessionFactory.openSession();
session.beginTransaction();
session.save(customer);
session.getTransaction().commit();
session.close();

我收到以下错误:

Hibernate: insert into customers (items, name, when, where, id) values (?, ?, ?, ?, ?)
дек 14, 2014 12:20:17 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: 1064, SQLState: 42000
дек 14, 2014 12:20:17 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'when, where, id) values ('red_rose1', 'Rextuz', '1_1_2015', 'len', 1)' at line 1

有什么解决办法吗?我使用 org.hibernate.dialect.MySQLDialect

最佳答案

您在 Customer 类中使用 SQL 关键字 whenwhere,这就是当 hibernate 触发对 sql 数据库的查询时出现异常的原因,如果可能的话,您可以更改 Customer 类属性的名称。

或者

您必须执行类似以下代码的操作。

public class Customer {
  .... 
   @Column("TX_WHEN")
    String when;

    @Column("TX_WHERE")
    String where;
    ... // getters and setters
}

并且您必须相应地更改您的客户表。

关于java - hibernate :MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27463307/

相关文章:

java - 如何检查 json 中的键以及它是否存在,然后在 java 模型对象中设置值

java - 删除txt文件中以字符串开头的所有行? ( java )

mysql - 分组依据中的订单字段

java - org.apache.axis2.AxisFault : Mapping qname not fond for the package: org. joda.time.chrono

java - 打印排序字符串时去除重复项

java - java 中使用数组和整数的不兼容类型

java - 如何查看查询执行计划?

java - Hibernate中双向实体是否需要双方互相添加?

mysql - 如何从 SQL Server 中的表中检索前 N 行或所有行

php - 切换到学说 : how to realize such query?