使用save()播放框架JPA问题 [英] Play framework JPA problem with save()
问题描述
我试图在数据库中保存一个简单的对象,但这给我带来了麻烦.
I'm trying to save a simple object in the database, but it's giving me problems.
这是我的对象类:
@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;
}
这就是我的控制器中的内容:
And this is what I have in my controller:
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
I'm doing the exact same thing for other Models, and I'm having no problems, only this one is giving me problems. When I refresh the browser I get:
PersistenceException occured : org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
我还添加了jpa.debugSQL=true
到我的配置中,并且在控制台中我得到了:
I also added jpa.debugSQL=true
to my configuration, and in my console I'm getting:
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
,但我不知道在哪里可以查看我的日志,所以如果有人也可以告诉我呢?
And the browser is also showing this: This exception has been logged with id 66k3glbb6
but I have no idea where I can view my logs, so if someone could tell me that too?
推荐答案
lines
是MySQL中的保留字,您需要按以下说明对其进行转义:
lines
is a reserved word in MySQL, you need to escape it as follows:
@Table(name="`lines`") // Hibernate way
或
@Table(name="\"lines\"") // JPA standard way
这篇关于使用save()播放框架JPA问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!