java - 使用 save() Play Framework JPA 问题

标签 java sql jpa persistence playframework

我试图在数据库中保存一个简单的对象,但它给我带来了问题。

这是我的对象类:

@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;
}

这就是我的 Controller 中的内容:

Line l = new Line();
l.setPosition(0);
l.setPostid(4);
l.setText("geen");
l.save();

我正在为其他模型做完全相同的事情,我没有遇到任何问题,只有这个给我带来了问题。当我刷新浏览器时,我得到: 出现 PersistenceException:org.hibernate.exception.SQLGrammarException:无法执行 JDBC 批量更新

我还在我的配置中添加了 jpa.debugSQL=true,在我的控制台中我得到:

Caused by: java.sql.BatchUpdateException: 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在第 1 行的“lines (line_position, line_postid, line_text, line_id) values (0, 4, 'geen', 0)'附近使用的正确语法

浏览器还显示:此异常已使用 id 66k3glbb6 记录,但我不知道在哪里可以查看我的日志,所以如果有人也能告诉我吗?

最佳答案

lines是MySQL的保留字,需要转义如下:

@Table(name="`lines`") // Hibernate way

@Table(name="\"lines\"") // JPA standard way

关于java - 使用 save() Play Framework JPA 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6255613/

相关文章:

java - 正确设置插件后,Maven 无法找到或加载主类

java - 替换字符串中的重复子串

mysql - 我需要将新项目添加到 SQL 表中并更新旧项目

java - 对于主页、J2EE,JPA Entitymanagerfactory 花费了 3-4 秒的时间

java - 使用 Hibernate JPA 启动 Spring Boot 应用程序时出现 NoSuchMethodError

java - 网页不可用 - 在 Android 上加载本地 HTML

java - 如何将我自己的插件添加到 Cooja

sql - XML 数据作为历史记录

mysql - 计算多个sql表的百分比

java - mysql 数据类型 SET 的 Hibernate 注释