我正在尝试在数据库中保存一个简单的对象,但这给我带来了问题。
这是我的对象类:
@Entity @Table(name="lines") public class Line extends GenericModel{ @Id @Column(name="line_id") private int id; @Column(name="line_text") private String text; @Column(name="line_postid") private int postid; @Column(name="line_position") private int position; }
这就是我的控制器中的内容:
Line l = new Line(); l.setPosition(0); l.setPostid(4); l.setText("geen"); l.save();
我正在为其他模型做完全相同的事情,但是我没有任何问题,仅此一项给我带来了问题。当我刷新浏览器时,我得到: PersistenceException occured : org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
PersistenceException occured : org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
我还添加jpa.debugSQL=true了配置,在控制台中,我得到了:
jpa.debugSQL=true
Caused by: java.sql.BatchUpdateException: 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 'lines (line_position, line_postid, line_text, line_id) values (0, 4, 'geen', 0)' at line 1
浏览器也显示了这一点:This exception has been logged with id 66k3glbb6但是我不知道在哪里可以查看我的日志,那么有人也可以告诉我吗?
This exception has been logged with id 66k3glbb6
lines 是MySQL中的保留字,您需要按以下步骤对其进行转义:
lines
@Table(name="`lines`") // Hibernate way
或者
@Table(name="\"lines\"") // JPA standard way