当前位置: 首页 > 知识库问答 >
问题:

如何传递空值调用过程使用本机查询?

沈英勋
2023-03-14

我使用JPA本机查询和PostgreSQL DB调用存储过程。

@仓库:

@Modifying
@Query(value="call proc(?1,?2,?3,?4,?5)",nativeQuery = true)
void saveProc(@Param("reply_by") Long replyBy,
              @Param("reply_to") Long replyTo,
              @Param("reply") String reply,
              @Param("status"),
              @Param("app_id") long appId);

因为一些参数是null(外键)。

服务:

repo.saveProc(2,null,"dvvf",null,null)  // java null

我得到了这个错误:

过程proc(bigint,bytea,字符变化,bytea,bytea)不存在

提示:没有过程匹配给定的名称和参数类型。可能需要添加显式类型转换。

如何传递null值,而不是bytea

共有1个答案

洪胤
2023-03-14

您必须强制转换可能为null的参数,因为Hibernate不知道参数类型:@Query(value=“call proc(cast(?1为bigint)、cast(?2为bigint)、?3、cast(?4为bigint)、cast(?5为bigint)),nativeQuery=true)

 类似资料:
  • 我有一个服务类,它通过使用< code > carrepository . retrieve cars()调用JPA存储库来接收汽车列表。存储库方法使用本地查询来检索记录。 现在我想传递参数< code > carrepository . retrieve cars(Long vinNo,Long serialNo)并在查询中使用它们。我假设我会需要一些东西作为准备好的陈述。然而,我不知道如何实现

  • 我是新来的Spring。我的一个项目需要调用一个自动任务应用编程接口,它在标题中包含应用编程接口集成代码、用户名和密码。如何将其集成到Rest模板中? 下面是我在swagger上测试的API的截图。使用Swagger调用API的截图

  • 本文向大家介绍如何通过AJAX调用传递JavaScript变量?,包括了如何通过AJAX调用传递JavaScript变量?的使用技巧和注意事项,需要的朋友参考一下 要通过AJAX调用传递JavaScript变量,请替换以下内容- 与- 示例 尝试以下代码以通过AJAX调用正确传递变量-

  • 问题内容: subprocess.call([“/home/myuser/run.sh”, “/tmp/ad_xml”, “/tmp/video_xml”]) 现在,我有了运行的脚本。当我运行它并到达此行时,它开始打印内容,因为run.sh中有打印内容。 如何将其也管道传输到文本文件?(如果可能,还可以打印) 问题答案: 如果要将输出写入文件,可以使用stdout -argument of 。 它

  • 我正在尝试用kotlin做一个Spring MVC RestController,但是我很难用LocalDatetime使用RequestParams。 如果我不指定参数< code>localhost:8080/,它会给出一个可在ControllerAdvice中捕获的错误,但如果我指定一个空值< code > localhost:8080/end date = ,它会给出< code > Ja