org.postgresql.util.PSQLException:错误:运算符不存在:整数= bytea

2024-04-04

我正在尝试从 Spring Boot 应用程序执行本机查询,但收到此错误“ org.postgresql.util.PSQLException:错误:运算符不存在:整数 = bytea ”

这是我为实现此目的而编写的代码

  @SqlResultSetMapping(
    name = "StudentAssessmentValue",
    classes = @ConstructorResult(
            targetClass = StudentAssessmentDTO.class,
            columns = {
                    @ColumnResult(name = "subject_title", type = String.class),
                    @ColumnResult(name = "assessment", type = String.class),
            }
    )
  )


  @NamedNativeQuery(
                    name = "getStudentSubjectsAssessment",
                    query = "SELECT\n" +
                            "   subject.subject_title,\n" +
                            "   j as assessment\n" +
                            "FROM   assessment s\n" +
                            "JOIN   LATERAL jsonb_array_elements(s.assessment) j(elem) ON (j.elem->>'student_id') = :student_id\n" +
                            "JOIN subject ON subject.id = s.subject_id\n" +
                            "WHERE s.subject_id IN (:subjects)\n" +
                            "AND s.academy_year_id = :academy_year_id\n" +
                            "AND s.term_id = :term_id\n" +
                            "AND s.section_id = :section_id"
                    ,
                    resultSetMapping = "StudentAssessmentValue"
            )

这是我的存储库中的代码

 @Query(nativeQuery = true, name = "getStudentSubjectsAssessment")
  List<StudentAssessmentDTO> getStudentAssessments2(
        @Param("student_id") String student_id,
        @Param("academy_year_id") Integer academy_year_id,
        @Param("section_id") Integer section_id,
        @Param("term_id") Integer term_id,
        @Param("subjects") Integer[] subjects
);

我的控制器中有这个

   @GetMapping("/{student_id}/{academy_year_id}/{section_id}/
   term_id}")
    public List<StudentAssessmentDTO> getStudentAssessment2(
        @PathVariable("student_id") String student_id,
        @PathVariable("academy_year_id") Integer academy_year_id,
        @PathVariable("section_id") Integer section_id,
        @PathVariable("term_id") Integer term_id,
        @RequestParam(value = "subjects") Integer[] subjects
   ){
    return assessmentService.getStudentAssessments2(student_id, academy_year_id, section_id, term_id, subjects);
   }

我还注意到如果我从查询中删除这部分 WHERE s.subject_id IN (:subjects) 或说我对主题值进行硬编码,如 s.subject_id IN (2,3,4) 代码成功运行。但如果该值来自请求,我就会收到错误。请求如下所示

本地主机:8080/评估/f3df0bc2-7b4c-49b9-86c9-6e6b01628623/3/4/1?subjects=2,3,4


我最近有一个与你类似的问题 https://stackoverflow.com/questions/57865149/postgres-bytea-error-when-binding-null-to-prepared-statements,同时还可以在 Postgres 上使用本机 JPA 查询。这对我有用:

// sqlString contains your native query

Query query = entityManager.createNativeQuery(sqlString, StudentAssessmentDTO.class);
query.setParameter("subjects", subjects);
query.setParameter("academy_year_id", new TypedParameterValue(IntegerType.INSTANCE, academy_year_id));
query.setParameter("term_id", new TypedParameterValue(IntegerType.INSTANCE, term_id));
query.setParameter("section_id", new TypedParameterValue(IntegerType.INSTANCE, section_id));
List< StudentAssessmentDTO > = query.getResultList();

您看到的错误可以解释为 Postgres JDBC 驱动程序无法正确地将所需的类型信息传递到数据库。例如,出现以下错误:

错误:运算符不存在:整数 = bytea

发生这种情况是因为驱动程序将参数作为字节数组传递给 Postgres,但目标列是整数类型。通过使用上面的类型“提示”,我们可以强制驱动程序传递正确的类型信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

org.postgresql.util.PSQLException:错误:运算符不存在:整数= bytea 的相关文章

随机推荐

  • PHP:获取图像大小

    我正在写一个函数 它需要一个参数 该参数是服务器上图像的物理路径 我想知道是否有可能以任何方式获得其原始大小 以像素为单位 在一个变量中 我想存储它的宽度 在另一个变量中存储它的高度 让我问这个问题的挑战是因为我必须在服务器端获取它 因此任
  • 向 pandas 的日期时间列随机添加 10 到 40 分钟

    我有一个数据框 如下所示 start 2010 01 06 09 00 00 2018 01 07 08 00 00 2012 01 08 11 00 00 2016 01 07 08 00 00 2010 02 06 14 00 00 2
  • 使用nodejs创建OAuth2服务器

    我实际上正在研究 REST API 安全性 似乎很多人都在使用 OAuth2 和 OpenId 协议来管理身份验证 我尝试使用以下方法实现两个 OAuth2 服务器 http passportjs org http passportjs o
  • 使用 adb 刷新 Android mediastore

    我正在使用 adb 在 Android 手机上同步音乐 本质上 我管理现有的音乐目录并推送替换音乐文件 我希望能够使用 adb 强制重新扫描 以便谷歌音乐播放器 和其他应用程序 能够与新歌曲和播放列表正常工作 根据如何刷新 Android
  • 如何以编程方式创建联系人[重复]

    这个问题在这里已经有答案了 可能的重复 如何在 Android 中添加新联系人 https stackoverflow com questions 4744187 how to add new contacts in android pub
  • 如何使用 python smtplib 向多个收件人发送电子邮件?

    经过大量搜索后 我无法找到如何使用 smtplib sendmail 发送给多个收件人 问题是每次发送邮件时 邮件标头都会显示包含多个地址 但实际上只有第一个收件人会收到电子邮件 问题似乎在于email Message http docs
  • 如何在 React 中使用 Firebase App Check。 403错误

    我想在 Gatsby 项目中使用 Firebase App Check 我已在 Firebase 控制台中完成了应用程序注册 在我的项目中 import initializeApp from firebase app import init
  • 评估给定文本块的关键字密度

    我想使用 php 将关键字短语传递给函数 并让该函数解析文本块并返回输入短语的关键字密度占文本块总字数的百分比 text lorem ipsum etc keyword lorem ipsum word count explode text
  • C++ 模板:防止基础模板的实例化

    我有一个界面 std string get string Source const s std string const d int get int Source const s int const d bool get bool Sour
  • phpMailer 未到达 Hotmail?

    设置 SPF 记录后 我仍然在这里验证为什么我无法将这封电子邮件接收到 hotmail 帐户 我可以毫无问题地将其发送到 Gmail 请确认代码是否正确 SPF记录是否正确
  • 如何在 JavaScript 代码中访问 PHP 变量?

    我在 PHP 代码中有一个变量 我想在 JavaScript 函数中访问它 下面是我的代码 myfile php
  • 在 julia 中打开 csv 文件时转义序列无效

    当打开 CSV 文件时julia它给 无效的转义序列 error 无效的转义序列 https i stack imgur com U9hn0 png julia gt using CSV julia gt wikiEVDraw CSV re
  • 在什么情况下“this”指针被传递给类方法? [复制]

    这个问题在这里已经有答案了 我正在阅读 this 指针 我想我比原来更了解它 但我仍然需要一些澄清 所以 根据我的理解 如果你有 class Simple private int m nID public Simple int nID Se
  • 将 awk 输出保存到变量 [重复]

    这个问题在这里已经有答案了 谁能帮我解决这个问题吗 我正在尝试将 awk 输出保存到变量中 variable ps ef grep port 10 grep v grep port 10 awk printf s 12 printf var
  • 合并两种错误类型的最惯用的方法是什么?

    我有一个类型Foo其方法可能会 引发 关联类型的错误Foo Err pub trait Foo type Err fn foo mut self gt Result lt Self Err gt 我还有一个特点Bar用一种旨在处理的方法Fo
  • Seaborn/Matplotlib 日期轴条形图小主要刻度格式

    我正在构建 Seaborn 条形图 x 轴是日期 y 轴是整数 我想格式化日期的主要 次要刻度 我希望周一的刻度线是粗体的并且是不同的颜色 即 主要刻度线 而本周的其余时间则不那么粗体 我无法在 x 轴上获得主要和次要刻度格式以使用 Sea
  • 在 jquery animate 中,如何使用自定义对象而不是 div?

    我的情况是这样开始的 我想对 div 的背景图像进行动画处理 但似乎使用 jquery 我无法检索背景图像的各个位置 背景位置 所以我想为什么不创建一个对象并为其值设置动画 然后将这些值放入 css 中 但我还不知道如何完全做到这一点 这是
  • 订阅 EnvDTE80.DTE2.Events2.PublishEvents.OnPublishBegin 的正确方法是什么?

    我正在将 VS 插件移植到 VS 包 当包初始化时 包会订阅 OnBuildBegin 和 OnPublishBegin Visual Studio 按预期触发 OnBuildBegin 但从未调用 OnPublishBegin 或多或少相
  • 从发电机生成

    我有一个生成器 它接受一个数字作为参数并生成其他数字 我想使用这个生成器生成的数字并将它们作为参数传递给同一个生成器 创建一个一定长度的链 例如 mygenerator 2 生成 5 4 和 6 将 mygenerator 应用于这些数字中
  • org.postgresql.util.PSQLException:错误:运算符不存在:整数= bytea

    我正在尝试从 Spring Boot 应用程序执行本机查询 但收到此错误 org postgresql util PSQLException 错误 运算符不存在 整数 bytea 这是我为实现此目的而编写的代码 SqlResultSetMa