JAVA API 未返回任何结果。在服务器上运行的 SQL 查询确实

标签 java restful-url

我有一个使用 NetBeans 构建的 JAVA RESTful API。我创建了一个自定义方法来使用不是主键的字段检索数据。如果我在数据库本身上运行此 SQL 命令,我会得到数据,但是如果我通过 API 运行它,我会得到 0 个结果。

这是命名查询:

@NamedQuery(name = "KeywordsView.findByCharId", query = "SELECT k FROM KeywordsView k WHERE k.charId = :charId")

调用此查询的方法:

@GET
@Path("findcharid/{charId}")
@Produces({MediaType.APPLICATION_JSON})
public List<KeywordsView> findByCharId(@PathParam("CharId") Integer charId){
    return getEntityManager().createNamedQuery("KeywordsView.findByCharId", KeywordsView.class).setParameter("charId", charId).getResultList();
}

我已经调试了 URL,它正在按预期调用和运行 URL。

有什么明显的错误吗?

最佳答案

由于 @PathParam("CharId") 中的 "CharId"{charId} 不匹配,charId 值为空@Path("findcharid/{charId}") 中的。这不会产生任何结果,因为 null 比较总是错误的。

@GET
@Path("findcharid/{charId}")
@Produces({MediaType.APPLICATION_JSON})
                                       // Should match the case
public List<KeywordsView> findByCharId(@PathParam("CharId") Integer charId){
    System.out.println("charId:"+charId);
    return getEntityManager().createNamedQuery("KeywordsView.findByCharId", KeywordsView.class).setParameter("charId", charId).getResultList();
}

关于JAVA API 未返回任何结果。在服务器上运行的 SQL 查询确实,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52076066/

相关文章:

Java - 如何处理这个 "might not be initialised"错误?

java - 无法部署 War 文件 : error in opening zip file

validation - 通过 REST API 验证/更改密码

rest - 带有 Struts2 的 Jersey

javascript - 替代 <a href ="#"> 当 anchor 标记仅触发 jQuery 操作而不重定向用户时?

java - java中将mysql表中的字符串数据转换为json列表

java - 将 protoc 生成的 java 文件转换为 .proto

java - 创建没有符号的真实直方图

java - Android - 将参数传递给 Android 应用程序中的 RESTful URL

java - 如何在 java web api 中获取单个请求的多个响应