【问题标题】:playframework selecting from h2 database从 h2 数据库中选择的 playframework
【发布时间】:2013-12-30 18:54:54
【问题描述】:

我正在尝试从 playframework 的 h2 buildin 数据库中的表中下载所有记录。 我遇到了一个错误:

[IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: * near line 1, column 8 [SELECT * FROM TABLE]] 

方法代码 i 类表:

@Transactional(readOnly=true)
public static Result view() {
    Query query = JPA.em().createQuery("SELECT * FROM TABLE");
    List<Table> downloaded_from_db = query.getResultList();
    System.out.println(downloaded_from_db.getClass());

    return ok(view.render("none"));
}

请帮助我。我想以简单的视图在控制台中查看下载的记录。 请给我一些提示或好的教程。

改变我的班级后看起来像这样:

@Transactional(readOnly=true)
public static Result view() {
    List<MedicalIncidents> data = JPA.em()
           .createNativeQuery("SELECT * FROM MedicalIncident")
           //.createQuery("Select m from MedicalIncident m")
           .getResultList();
    System.out.println(data);

我认为它有效,因为我在数据库的那个表中有 2 个条目:

但是 System.out.println(data) 在游戏控制台中返回:

[[Ljava.lang.Object;@70a0c9be, [Ljava.lang.Object;@4c1d12b6]

但它应该按模型名称返回此对象,例如:computer-database-jpa:

[models.Computer@214c6fde, models.Computer@63728eb3, models.Computer@75f6bcc6, models.Computer@19e3a7ab, models.Computer@3114d8d4, models.Computer@4fa75f78, models.Computer@756ce822, models.Computer@40fc4c68, models.Computer@73fc612c, models.Computer@3e4fcb31]

所以我认为它有问题。请帮忙

【问题讨论】:

    标签: jpa h2 playframework-2.2


    【解决方案1】:

    您将 SQL 查询与 JPQL 查询混合在一起。你使用的方法createQuery需要JPQL查询:

    SELECT e FROM Entity e
    

    另外请注意在 JPQL 中没有 SELECT *。如果要编写 SQL 查询,请使用方法em.createNtiveQuery()

    【讨论】:

    • 这对我有帮助,谢谢。现在我遇到了另一个问题。我已经编辑了我的帖子。往上看
    • 请将此问题标记为已解决并发布另一个问题。
    • @masterdany88 在提出新问题之前,请参阅此问题/答案以获取示例:stackoverflow.com/questions/17708946/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-30
    • 2018-08-03
    • 2013-10-18
    • 1970-01-01
    • 2015-01-08
    • 2012-01-01
    相关资源
    最近更新 更多