Play framework JPA problem with save()
I'm trying to save a simple object in the database, but it's giving me problems.
This is my object class:
@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 开发者_如何学Cpostid;
@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();
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
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
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
is a reserved word in MySQL, you need to escape it as follows:
@Table(name="`lines`") // Hibernate way
or
@Table(name="\"lines\"") // JPA standard way
Be sure there is no @Transactional(readOnly = true)
for save method :)
精彩评论