Hibernate JPA 2元模型生成器土耳其字符问题

h43kikqp  于 2022-11-14  发布在  其他
关注(0)|答案(2)|浏览(154)
<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.hibernate.jpamodelgen.util.StringUtil类的getUpperUnderScotreCaseFromLowerCamelCase方法导致了这种情况。

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

ToUpperCase方法应具有参数Locale.ROOT。
我在Hibernate issue tracker system上创建了一个问题。
任何快速的解决方案/解决方法都是很棒的。

8yparm6h

8yparm6h1#

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

<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>
s2j5cfk0

s2j5cfk02#

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

<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>

相关问题