加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 用save()播放框架JPA问题

发布时间:2020-12-15 08:41:05 所属栏目:Java 来源:网络整理
导读:我正在尝试在数据库中保存一个简单的对象,但它给了我一些问题. 这是我的对象类: @Entity@Table(name="lines")public class Line extends GenericModel{ @Id @Column(name="line_id") private int id; @Column(name="line_text") private String text; @Colu
我正在尝试在数据库中保存一个简单的对象,但它给了我一些问题.

这是我的对象类:

@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:org.hibernate.exception.SQLGrammarException:无法执行JDBC批量更新

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

引起:java.sql.BatchUpdateException:您的SQL语法中有错误;查看与MySQL服务器版本对应的手册,以便在第1行的’lines(line_position,line_postid,line_text,line_id)值(0,4,’geen’,0)’附近使用正确的语法

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

解决方法

lines是MySQL中的保留字,你需要按如下方式转义它:

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

要么

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读