org.jooq.exception.DataAccessException:不支持的 Unicode 转义序列 \u0000

2024-01-22

我正在尝试使用 jOOQ 将序列化的 JSON 插入 Postgres JSONB 列,但它失败了,因为序列化的 JSON 有一个\\0在它里面。

jOOQ 有没有办法自动为我们逃脱这个问题?

这是我得到的异常:

org.jooq.exception.DataAccessException: SQL [insert into ...]; 
ERROR: unsupported Unicode escape sequence 
Detail: \u0000 cannot be converted to text. 
Where: JSON data, line 1: ...ity":17,"REDACTED":["REDACTED"],"REDACTED":... at 
org.jooq_3.15.8.POSTGRES.debug(Unknown Source) at 
org.jooq.impl.Tools.translate(Tools.java:2997) at 
org.jooq.impl.DefaultExecuteContext.sqlException(DefaultExecuteContext.java:639) at 
org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:354) at 
org.jooq.impl.DMLQueryAsResultQuery.fetch(DMLQueryAsResultQuery.java:137) at 
org.jooq.impl.ResultQueryTrait.fetchLazy(ResultQueryTrait.java:278) at 
org.jooq.impl.ResultQueryTrait.fetchLazyNonAutoClosing(ResultQueryTrait.java:287) at 
org.jooq.impl.ResultQueryTrait.fetchOne(ResultQueryTrait.java:506) at 
...

鉴于您提供的详细信息错误报告#13903 https://github.com/jOOQ/jOOQ/issues/13903,我不认为 jOOQ 可以为您做太多开箱即用的事情。这NUL可以包含在字符串中的字节在 PostgreSQL 中似乎具有特殊含义,因此被禁止:

  • https://www.commandprompt.com/blog/null-characters-workarounds-arent-good-enough/ https://www.commandprompt.com/blog/null-characters-workarounds-arent-good-enough/
  • 通过 Python 在 PostgreSQL 中的 unicode 字符串中是否允许空字节? https://stackoverflow.com/q/28813409/521799
  • 一字节“char”类型在 PostgreSQL 中到底是如何工作的? https://dba.stackexchange.com/a/166167/2512

你可以试试这个:

select '{"a":"\u0000"}'::jsonb;

你会得到这个错误:

SQL 错误 [22P05]:错误:不支持的 Unicode 转义序列 详细信息: \u0000 无法转换为文本。 位置:8 其中:JSON 数据,第 1 行:{"a":...

展示这一点与jOOQ本身无关。 jOOQ 无法代表您对此进行合理编码,因为任何选择的编码都将不可避免地与某些用户的其他数据发生冲突。例如,如果"\u0000"被编码为"#u0000",那么这可能会打破一些用户已经对两者之间的差异做出的假设\ and #人物。因此,jOOQ 无法提供开箱即用的功能。

但是,您可以编码NUL字节以任何你想要的方式使用自定义jOOQ数据类型绑定 https://www.jooq.org/doc/latest/manual/sql-building/queryparts/custom-bindings/.

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

org.jooq.exception.DataAccessException:不支持的 Unicode 转义序列 \u0000 的相关文章

  • 如何在itext中设置自定义颜色?

    感谢您花时间回答我的问题 我正在使用 Java 中的 iText 生成 PDF 文档 我需要将表的列标题设置为与值列中的颜色不同的颜色 我有来自 Photoshop 的颜色十六进制值 我正在使用带有块和段落的 PdfPTable 除了 Ba
  • 协助持续进行 Java 到 C# 转换的工具

    如今 许多项目都是用 Java 编写的 其中一些最终转换为 C 以合并到 NET 中 我想到的例子有 log4net nhibernate 和 db4o 包括 Sharpen db4o 的工具 在内 您是否见过和 或使用过任何使连续转换变得
  • Gradle 同步失败:配置项目“:lib”时出现问题

    我正在尝试在 android studio 中构建一个项目 但它总是失败 并出现名为 org gradle api ProjectConfigurationException A problem occurred configuring p
  • 将 4 个字节转换为无符号 32 位整数并将其存储在 long 中

    我正在尝试用 Java 读取二进制文件 我需要读取无符号 8 位值 无符号 16 位值和无符号 32 位值的方法 执行此操作的最佳 最快 最美观的代码 是什么 我在 C 中做到了这一点 并做了类似的事情 uint8 t buffer uin
  • Java程序验证signtool签名的数字签名

    我已经使用 SignTool 对文件 exe 或 dll 不是 jar 文件 进行了数字签名 Signtool还可以验证数字签名 但我的要求是使用java程序检查由signtool签名的文件的数字签名 我在互联网上搜索但没有找到任何信息 您
  • Powermockito 可以在非最终具体类中模拟最终方法吗?

    假设我有一个非最终具体类 具有如下所示的最终方法 public class ABC public final String myMethod return test test 可以嘲笑吗myMethod 调用时返回其他内容junit usi
  • 使用 IntentService 使用 Camera2 拍照

    我正在尝试创建一个可以拍照但不显示预览的应用程序 使用本教程 https www youtube com watch v oPu42I0HSi4 https www youtube com watch v oPu42I0HSi4如果我使用和
  • 从 HashMap 条目列表中删除重复项

    我有一个List
  • CXF 客户端异常:{XXX} 的拦截器已引发异常,现在展开

    我遇到以下 CXF 异常 warning Interceptor for http example com wsdl esc 2011 12 12 AmazonEC2 http example com wsdl esc 2011 12 12
  • 通过代理从java发送电子邮件

    我使用 Java Mail API 来发送和接收电子邮件 现在我做这个项目的地方有一个代理服务器 我可以知道如何通过代理服务器从java发送电子邮件吗 请参阅此处的常见问题解答 http www oracle com technetwork
  • 在 Java 中停止线程? [复制]

    这个问题在这里已经有答案了 我正在编写一段代码 该代码连接到服务器 使用该连接生成一堆线程并执行一堆 东西 在某些情况下 连接会失败 我需要停止一切并从头开始使用新对象 我想在对象之后进行清理 但在线程上调用 thread stop 但此方
  • 椭圆与椭圆如何相交?

    我用的是JAVA Ellipse2D s1 new Ellipse2D Float 0 0 100 100 System out println s1 intersects 99 30 100 100 应该返回 false 但它返回 tru
  • 查找前 N 个五边形数

    我必须找到第一个N pentagonal numbers 1 从 1 100 并每行显示 10 个 我必须使用getPentagonalNumber int n 方法也是如此 显然这就是它存在的原因 到目前为止 这是我的代码 package
  • 在 Android 上解析 RSS

    我有几个 RSS 源需要为我的应用程序进行解析 我按照这里的优秀教程进行操作 http w2davids wordpress com android rssatom feeds parsing with rome http w2davids
  • 使用 Gradle 构建 Kotlin + Java 9 项目

    我对 Gradle 老实说 还有 Java 9 相当陌生 我正在尝试使用 Gradle 构建一个混合了 Java 9 和 Kotlin 的简单库项目 更详细地说 Java中有一个接口 Kotlin中有一个实现 我会用 Kotlin 做所有事
  • 没有字符串参数构造函数/工厂方法可以从字符串值 ('') 反序列化

    我在使用时遇到了 json 解析问题ObjectMapper类来自com fasterxml jackson databind包 我得到的错误是 com fasterxml jackson databind JsonMappingExcep
  • 在 Scala 中创建 Java 对象

    我有一个 Java 类 Listings 我在 Java MapReduce 作业中使用它 如下所示 public void map Object key Text value Context context throws IOExcept
  • 如何在两种不同模式、两种布局中设置方向?

    我有一个叫做Main XML我将方向设置为纵向AndroidManifest xml 我也为 Honeycomb 设计了这个布局并将其放置在layout xlarge mdpi文件夹 但我想使用Main XML in layout xlar
  • 为什么我得到:没有有效的 JFX 运行时

    我有一个使用 java 1 6 编译并使用 jnlp webstart 运行的现有应用程序 如果我使用 JRE 1 6 从客户端运行此应用程序 一切都会很好 但是 当我使用 java JDK 7 编译代码并使用 JRE 1 7 67 运行客
  • 找不到 `activityViewModels()` Hilt Android

    我在我的项目中使用 Hilt 和 MVVM 我想要一个viewModel from activityViewModel在 2 个活动中使用相同的内容 但我的 Android Studio 说未解析的参考 我的应用程序 build gradl

随机推荐

  • Python 错误:未指定主机

    我刚刚写了一个简单的python demo 同时遇到了一个令人困惑的问题 import requests print requests get http www sina com cn 我知道正确的结果是返回 Response 200 但是
  • PHP的use语句在加载类时会导致额外的工作吗?

    代码示例1 use Outline Drawing var new Drawing 代码示例2 var new Outline Drawing 问题 如果我使用示例 1 中的代码 PHP 是否会使硬件工作更加困难 查找更多文件或执行更多处理
  • 在 Flask 中同时渲染多个模板

    我正在制作一个 Flask 应用程序 我有一个登录区域 一个博客区域 如果我想获取用户的登录信息 我将渲染登录模板 但这不会呈现必须显示在登录区域下方的博客模板 我会尽力让它更清楚 block login endblock blah bla
  • SSIS 脚本组件删除 CHAR(和)字段中的“\0”字符

    我目前正在开发一个字段中有 0 字符的数据库 例如领域 Category CHAR 4 有时值为 0 0 0 0 4 个零字符 有时为 4 个空白字符 我想使用脚本组件来区分存在此问题的所有字段 我编写了以下脚本 但它不起作用 因为 C 将
  • 设置 AnchoredOffsetbox 的线宽和面颜色?

    是否可以更改 AnchoredOffsetbox 的线宽 面颜色等 我用它来列出我的图旁边的一些变量 例如 A 1 B 2 以这种方式 垂直对齐 所以它有点像一个额外的图例 但句柄也是文本 但我不知道如何像图例那样设置框架的属性 非常感谢任
  • 动态更改 Quill 占位符

    我知道在实例化 Quill 编辑器时 有一个占位符选项 有没有一种方法可以在实例化编辑器后动态更改此占位符 占位符是通过 CSS 规则实现的 ql editor before content attr data placeholder 所以
  • 如何在别名列上使用聚合函数 SUM?

    Invoice ID PO Number and dueDate are shown in duplicates TotalPrice 是一个别名 应该是单价 总价是一个错误 所以假设是单价而不是总价 TotalShippingPrice
  • JSON.net 与 XPATH:如何保留 SelectToken 中的节点顺序?

    XPath 2 规定应按照文档中的顺序返回选择的节点顺序 当您在 JSON Net 中 SelectTokens JSONPath 时 情况似乎并非如此 当我处理以下文档时 string json Files dir1 Files file
  • 文件版本信息和程序集信息

    给出 Blah dll 的 AssemblyInfo cs 中的这段代码 assembly AssemblyVersion 3 3 3 3 assembly AssemblyFileVersion 2 2 2 2 然后在一个单独的 exe中
  • 如何将字符串转换为HashMap? [复制]

    这个问题在这里已经有答案了 我有一个 Java 属性文件 并且有一个KEY as ORDER 所以我检索VALUE那个KEY使用getProperty 加载属性文件后的方法如下 String s prop getProperty ORDER
  • Java 8 Javascript 引擎向后兼容性

    我正在我的项目中尝试 Java 8 但遇到了与构建过程相关的错误 我正在使用 ANT 脚本 有时我会使用一些 javascript 嵌入到 ANT 中 来执行一些构建特定的操作 导致错误的脚本部分如下所示 该项目使用 Java 7 或 Ja
  • Cygwin 上的 C 编译器生成什么?

    根据下面的 recognize compilers sh 脚本的输出 Cygwin 上似乎可以使用以下 C 编译器 那些标记为 Cygwin 的要求 cygwin1 dll 文件可用 pc 和 w64 编译器有什么区别 为什么没有 x86
  • C++20 std::ranges:范围适配器跳过每个第 n 个元素

    我正在尝试更熟悉 C 20std ranges我遇到了一个看似简单的问题 如果不滚动我自己的实现 我无法找到标准解决方案 问题很简单 我只想访问和处理使用 C 20 范围适配器的范围中的每个第 N 个元素 例如 我正在寻找一个实用程序 其中
  • 从一个文件访问另一个文件中的类实例?

    我有两个文件 都在同一个项目中 网络抓取框架的一部分 File1 处理 File2 生成的项目 在 File2 中 我有一个函数可以打印出有关进程的一些基本统计信息 已生成的项目数等 我在 File1 中有计数 我想使用 File1 中的统
  • Qt 库中的 GUI 线程检测

    我需要知道我的函数在哪个线程的上下文中运行 是主 GUI 线程还是某个工作线程 我无法使用简单的解决方案将 QThread 指针存储在主函数中并将其与 QThread currentThread 进行比较 因为我正在编写一个库并且无权访问主
  • php通过字符串名称调用类函数

    如何通过名称调用普通 非静态 类函数 下面给出了一个错误 指出 param 1 需要是一个有效的回调 我不希望该函数是静态的 我希望它是一个普通的函数 并且到目前为止我看到的所有示例都将它们设为静态 class Player public
  • Dagger 2 组件中的 getter 方法的用途是什么?

    我正在尝试了解 Dagger 2 中的组件 这是一个示例 Component modules MyModule class public interface MyComponent void inject InjectionSite inj
  • SingleOutputStreamOperator#returns(TypeHint typeHint) 方法的 javadoc

    我正在阅读源代码SingleOutputStreamOperator returns 它的javadoc是 Adds a type information hint about the return type of this operato
  • Objective-C 中#import 和#include 有什么区别?

    Objective C 中 import 和 include 之间有什么区别 有时您应该使用其中之一而不是另一个 是否已弃用 我正在阅读以下教程 http www otierney net objective c html preamble
  • org.jooq.exception.DataAccessException:不支持的 Unicode 转义序列 \u0000

    我正在尝试使用 jOOQ 将序列化的 JSON 插入 Postgres JSONB 列 但它失败了 因为序列化的 JSON 有一个 0在它里面 jOOQ 有没有办法自动为我们逃脱这个问题 这是我得到的异常 org jooq exceptio