当前位置: 首页 > 面试题库 >

使用save()播放框架JPA问题

仲绍晖
2023-03-14
问题内容

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

这是我的对象类:

@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

我还添加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但是我不知道在哪里可以查看我的日志,那么有人也可以告诉我吗?


问题答案:

lines 是MySQL中的保留字,您需要按以下步骤对其进行转义:

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

或者

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


 类似资料:
  • 我正在使用Play Framework v.2.6.3和用于SQL访问的JPA解决方案。 当我在实体上设置FetchType.Lazy时,我会收到以下错误消息: play.api.http。HttpErrorHandlerExceptions$$anon$1:执行异常[[RuntimeException:java.lang.IllegalArgumentException:未能延迟初始化角色集合:

  • 你好,我是新来玩框架游戏的。在我的后端集群中,有基于SOAP的java Web服务在jetty服务器下运行。我正在使用play 2.1.2开发一个基于Web的应用程序,它应该调用在后端集群中运行的SOAP Web服务。 我在谷歌上搜索,找到了一些链接,但我看不出来http://playframework.wordpress.com/2010/08/15/web-services-using-pla

  • 我无法用Intellij的Community Edition 14编译/调试当前的Play框架(2.3.7)。既不是通过导入项目,也不是通过使用gen-idea。

  • 而是使用EventStream而不是ArchivedEventStream,当我运行命令alert(通知)消息时,会转到除原始发件人之外的所有连接套接字,我也可以如何发送到原始发件人。 这是我的模型和控制器,使用WebSocket 事件模型 这是控制器

  • Rest服务器(Play Framework)中的相关问题在负载测试期间出现“读取超时”异常 java版本“1.8.0_31”java(TM)SE运行时环境(Build1.8.0_31-B13)java HotSpot(TM)64位服务器VM(Build25.31-B07,混合模式) 我正在我的本地PC中测试jmeter。我使用了2000个线程,出现了超时异常,并且Socket不知为什么没有关闭。

  • 我不熟悉这个框架,尝试使用JavaWS调用RESTful API。我一直在努力解决这个问题。这就是我目前的情况: 这段代码基于JavaWS文档(我发现它非常混乱),旨在发出请求。我认为它的工作原理是重复“ok”结果的完成阶段,该结果包含一个字符串,该字符串是将响应转换为文本的结果。 然后从控制器调用此代码: 我目前收到一个错误,上面写着“变量ws可能没有初始化”,这是有意义的,因为我没有初始化ws