java - JPAMetaModelEntityProcessor 无法使用特殊字符正常工作
问题描述
我正在使用 oracle db 进行 spring-data-jpa 项目。在我的项目中,有一个名为 Booking 的实体 -
@Entity
public class Booking {
public enum $State { ACCEPTED, REJECTED}
@Id
private Long id;
private $State state;
}
我正在使用休眠作为 ORM。要为这个实体生成元模型,我正在使用 hibernate-jpamodelgen 依赖项 -
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
<version>5.4.22.Final</version>
</dependency>
当我mvn clean install
在我的项目上运行时,它开始在目标文件夹中构建元模型文件。但是对于这个 Booking 类,它会生成 -
@Generated(value = "org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor")
@StaticMetamodel(Booking.class)
public abstract class Booking_ {
public static volatile SingularAttribute<Booking, .State> state;
}
在编译期间它失败,因为.State
不存在。我不明白它为什么要转换$
为.
. 有谁知道如何解决这个问题?
解决方案
这个问题的解决方案是我们不能在类名中使用 $。$ 是关于 JAVA 类名的特殊字符,由 JVM 在内部用于处理内部类。有关更多详细信息,请查看 - https://hibernate.atlassian.net/browse/HHH-14277
推荐阅读
- html - 里面有图标的css圆圈
- java - Java 简单易用的 lambda 函数,例如 Python
- postgresql - 带有 PostgreSQL 数据库的环回用户模型
- reactjs - 棱镜:如何从 API 中提取自定义类型的所有“选择”字段?
- webpack-encore - symfony/encore:隐藏依赖警告
- spring-boot - Sharding-jdbc:precisionAlgorithmClassName:java -jar project.jar error:Caused by: java.lang.ClassNotFoundException
- typescript - 我应该如何从一个包中导出多组类/接口
- wordpress - 获取自定义帖子类型名称返回空
- json - 为什么 Mongo JSON 查询无法由 runMangoAggregation Processor Nifi 执行?
- c# - VS2019 中的 Azure IoT 解决方案仅适用于系统重启后的首次运行