Jooq模型生成中的字符集问题
Character Set Problem In Jooq Model Generation
我正在为我的后端 java 项目使用 PostgreSql 和 Jooq。
Postgre 字符集 UTF-8 归类 WIN1254 土耳其语。
示例 Table
品牌 -- TABLE
- 编号
- 姓名
型号 -- TABLE
- 编号
- 姓名
- 品牌编号
'I'字大'i'。它不是来自土耳其字母的“ı”。
Jooq 生成模型为 'BRANDİD' 和 'getBrandıd'。 'getBrandıd' 不允许在 html 中使用。 Spring 给出了这种用法的错误。我曾尝试为 jooq 模型生成更改字符集,但没有成功。不支持的字符将作为“?”插入到 java 模型代码中。我该如何解决这个问题?
最近有人在 jOOQ user group:
上提出了类似的问题
解决此问题的最简单方法是覆盖运行代码生成的 JVM 的默认区域设置。例如。使用:
set MAVEN_OPTS= -Duser.language=en
当然这可能是不稳定的,因为某些环境可能配置不正确。
另一种解决方法是编写自己的生成器策略:
- https://www.jooq.org/doc/latest/manual/code-generation/codegen-generatorstrategy/
- https://www.jooq.org/doc/latest/manual/code-generation/codegen-matcherstrategy/
目前没有任何方法可以指定代码生成区域设置,尽管应该有。有一个待处理的功能请求
https://github.com/jOOQ/jOOQ/issues/9744
我正在为我的后端 java 项目使用 PostgreSql 和 Jooq。 Postgre 字符集 UTF-8 归类 WIN1254 土耳其语。 示例 Table
品牌 -- TABLE
- 编号
- 姓名
型号 -- TABLE
- 编号
- 姓名
- 品牌编号
'I'字大'i'。它不是来自土耳其字母的“ı”。
Jooq 生成模型为 'BRANDİD' 和 'getBrandıd'。 'getBrandıd' 不允许在 html 中使用。 Spring 给出了这种用法的错误。我曾尝试为 jooq 模型生成更改字符集,但没有成功。不支持的字符将作为“?”插入到 java 模型代码中。我该如何解决这个问题?
最近有人在 jOOQ user group:
上提出了类似的问题解决此问题的最简单方法是覆盖运行代码生成的 JVM 的默认区域设置。例如。使用:
set MAVEN_OPTS= -Duser.language=en
当然这可能是不稳定的,因为某些环境可能配置不正确。
另一种解决方法是编写自己的生成器策略:
- https://www.jooq.org/doc/latest/manual/code-generation/codegen-generatorstrategy/
- https://www.jooq.org/doc/latest/manual/code-generation/codegen-matcherstrategy/
目前没有任何方法可以指定代码生成区域设置,尽管应该有。有一个待处理的功能请求 https://github.com/jOOQ/jOOQ/issues/9744