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

HiberNate JPA 2元模型生成器土耳其Char问题

狄飞尘
2023-03-14
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-jpamodelgen</artifactId>
        <version>6.0.0.Alpha2</version>
    </dependency>

当我添加hibernate-jpamodelgen依赖到项目中时。在编译过程之前,一切都正常。我可以在目标文件夹下看到生成的元模型类。但是由于我的系统默认值(与我的操作系统相关),元模型类上的字段名常量转换错误。

public static final String TRANST�ME = "transtime";
public static final String NOTE = "note";
public static final String �SACT�VE = "isactive";

-

[ERROR] /C:/Users/*/IdeaProjects/*/target/generated-sources/annotations/*/model/acc/InvtypeView_.java:[20,37] illegal character: '\ufffd'

这会导致编译错误。当我分析代码生成过程时,我可以看到org。冬眠杰帕莫代尔根。util。StringUtil类的GetUpperUnderlineCaseFromLowerCamelcase方法导致了这种情况。

public static String getUpperUnderscoreCaseFromLowerCamelCase(String lowerCamelCaseString){
    return lowerCamelCaseString.replaceAll("(.)(\\p{Upper})", "$1_$2").toUpperCase();
}

toUpperCase方法应具有参数区域设置。根

我已经创建了一个关于HiberNate问题跟踪器系统的问题。

任何快速的解决方案/解决方法都会很好。

共有2个答案

晁砚
2023-03-14

我也有同样的问题。我的问题通过以下插件解决了

<plugin>
            <inherited>true</inherited>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>${maven-compiler-plugin.version}</version>
            <configuration>
                <source>${java.version}</source>
                <target>${java.version}</target>
                <compilerArgument>-proc:none</compilerArgument>
                <encoding>UTF-8</encoding>
                <showWarnings>true</showWarnings>
                <showDeprecation>true</showDeprecation>

            </configuration>
        </plugin>

        <plugin>
            <groupId>org.bsc.maven</groupId>
            <artifactId>maven-processor-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>process</goal>
                    </goals>
                    <phase>generate-sources</phase>
                    <configuration>
                        <compilerArguments>-AaddGeneratedAnnotation=false</compilerArguments> <!-- suppress java.annotation -->
                        <processors>
                            <processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor>
                        </processors>
                        <outputDirectory>generated</outputDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>
萧嘉禧
2023-03-14

我已经修复了以下配置的相同问题。

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>${java.version}</source>
        <target>${java.version}</target>
        <fork>true</fork>
        <compilerArgs>
            <compilerArg>-J-Duser.language=en</compilerArg>
            <compilerArg>-J-Duser.country=US</compilerArg>
            <compilerArg>-J-Dfile.encoding=UTF-8</compilerArg>
        </compilerArgs>
        <annotationProcessorPaths>
            <annotationProcessorPath>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-jpamodelgen</artifactId>
                <version>${hibernate.version}</version>
            </annotationProcessorPath>
        </annotationProcessorPaths>
    </configuration>
</plugin>
 类似资料:
  • 问题内容: 我没有找到有关如何在 Windows 上处理此问题的良好说明,因此我在这里进行了介绍。 土耳其语()和()中有两个字母,它们是python错误处理的。 鉴于区域设置正确,应该如何: 和 我尝试甚至没有帮助。 如何让python正确处理这两个字母? 问题答案: 您应该使用PyICU

  • 问题内容: 我想在英语和土耳其语区域设置中将土耳其语字符串翻译成小写。我正在这样做: 输出为: 但是我想要这样的输出: 这在Java中可行吗? 问题答案: 如果使用构造函数,则可以并且必须将语言,国家和变量设置为单独的参数: 因此,您的测试程序使用语言“ tr-TR”和“ en_US”创建语言环境。对于测试程序,可以使用和。 如果您使用的是Java 1.7+,则还可以使用以下命令解析语言标签: 创

  • 有没有办法根据土耳其语改变R中的字符编码系统? 我试图在将R脚本保存为iso-8859-9、windows-1254或latin5时更改编码。最后的编码给了我最好的结果,但是当我重新加载R脚本时,并不是所有的字符都被正确保存。例如: 原件: 重新加载(第二个示例中的字符已刷新): 有人有主意吗?提前谢谢!

  • 问题内容: 土耳其最近(2016年9月6日)决定永久停留在夏令时(DST)。该法案取消了原定于2016年10月30日04:00:00的DST结束。时钟没有改变。 土耳其介于之间,因此现在将保持在+3。在这里你可以看到 https://www.timeanddate.com/time/change/turkey/ankara?year=2016 …以及Wikipedia页面 中的“土耳其时间” 和这

  • 问题内容: 使用python 2.7: 尝试了一些解码(例如,myCity.decode(“ utf-8”)。lower()),但找不到执行该操作的方法。 如何降低这种字母?(“ I”>“ı”,“İ”>“ i”等) 编辑:在土耳其语中,“ I”的小写字母是“ı”。“ i”的大写字母为“İ” 问题答案: 有些人建议使用语言环境。至少在Ubuntu上,也许与此bug有关,设置此语言环境不会产生预期的结

  • 问题内容: 在Java 6中, 打印i(),但是在Java 7中,它用双点()打印i 。 我知道这是土耳其语字符,但是如何使用此代码使Java 7输出与v6相同的输出? 还要确保该代码可以处理国际文本,而无需对该函数进行硬编码以仅使用土耳其语区域设置。 问题答案: 关于此iLowerCase问题,有一篇非常详细的博客文章 让我尝试总结以下主要部分: 在Java 7中,此方法的确发生了变化,并且与J