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

Jooq 模型生成中的字符集问题

詹斌蔚
2023-03-14

我正在为我的后端java项目使用PostgreSql和Jooq。Postgre字符集UTF-8排序规则WIN1254土耳其语。样本表

品牌表

    < li>Id < li >名称

模型表

  • Id
  • 名称
  • 品牌ID

“我”字是大“我”。它不是土耳其语字母中的“ı”。

Jooq以'brandi̇d'和“getBrand”的身份生成模型。不允许在html中使用“getBrand”。Spring给出了这种用法的错误。我试图改变jooq模型生成的字符集,但它不起作用。不支持的字符将在java模型代码中作为“?”插入。我该如何解决这个问题?

共有1个答案

斜高翰
2023-03-14

jOOQ用户群最近也提出了类似的问题:

解决此问题的最简单方法是覆盖运行代码生成的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

 类似资料:
  • 我目前正在进行一个项目,该项目需要使用QVTO将一个模型转换为另一个模型。源模型是以表格形式表示的状态机。目标模型也是具有节点和边的statemachine。源模型只有领域元模型,但目标模型同时具有领域和符号元模型。符号元模型是http://www.eclipse.org/gmf/runtime/1.0.2/notation。我从源域模型转换到目标域模型,但是我的目标模型没有表示法模型。我想做的是

  • 我正在使用sybase ASE作为我的数据库。当我尝试使用jooq生成代码时,它显示以下警告。但是没有生成代码。任何帮助,请提前感谢! --

  • 我更改了数据库中的一些表,所以我想生成记录、键、类等。但是每次我这样做时,它总是跳过jooq代码生成。 [INFO]--jooq-codegen-maven:3.11.10:generate(默认cli)@http网关--[INFO]跳过jooq代码生成 为了运行Jooq代码生成,我应该执行哪个mvn cmd?现在我使用: 谢谢

  • 我正在考虑使用jOOQ作为一个typesafe、DB方言独立的SQL生成器,因为我需要在一个较大的应用程序中动态创建一个小型数据库DDL脚本和大量INSERT-和UPDATE语句。然后我们提供文件作为下载。 我想为用户提供一个可供选择的不同DB方案,以便导出到:、、,如果许可是商业许可,则可以选择、等。 当然,我可以手工为每个RDBMS重新创建基本模式,但这很乏味,容易出错,而且似乎是多余的:难道

  • 试图用Joda DateTimes生成JooQ POJOs,我遇到了一些问题。POJO使用默认的java.sql从生成器中生成。时间戳值,而不是日期时间。 代码如下。 Create Table(此处时间戳字段的名称已更改)希望确保我没有命中构建系统中的某个缓存。此名称仍应与下面的正则表达式匹配。 转换类——基于文档。 Jooq配置XML。基于文档(感谢您捕获我的表达式/表达式错误Luke)! 创建

  • 生成数据库中所有表的模型文件,如果设置了include或exclude,则按照相应规则过滤表。 必选参数: -namespace 生成的Model所在命名空间 可选参数: -database 数据库名,不传则取连接池默认配置的库名 -baseClass 生成时所继承的基类(自行实现务必继承框架的模型类),默认Imi\Model\Model,可选 -poolName 连接池名称,不传则取默认连接池