JPA 元模型生成缺少属性

Posted

技术标签:

【中文标题】JPA 元模型生成缺少属性【英文标题】:JPA Metamodel generation missing attributes 【发布时间】:2014-12-06 16:31:16 【问题描述】:

我正在使用 JPA 元模型生成 http://relation.to/Bloggers/HibernateStaticMetamodelGeneratorAnnotationProcessor 能够使用属性名称执行条件查询。

我正在通过 ANT 和 hibernate-jpamodelgen-4.3.5.Final 生成元模型类 http://mvnrepository.com/artifact/org.hibernate/hibernate-jpamodelgen/4.3.5.Final

问题是: 如果我有这样的实体:

@Entity public class Order 

    @Id 
    Integer id;
    @ManyToOne 
    Customer customer;
    @OneToMany 
    Set<Item> items;
    BigDecimal totalCost;
    java.net.URI uri;
    ...

有二传手和一切......

生成的元模型会是这样的:

@StaticMetamodel(Order.class)
public class Order_ 
    public static volatile SingularAttribute<Order, Integer> id;
    public static volatile SingularAttribute<Order, Customer> customer;
    public static volatile SetAttribute<Order, Item> items;
    public static volatile SingularAttribute<Order, BigDecimal> totalCost;

所以生成的类中缺少 URI

可能是因为缺少 java.net.URI 的标准无属性构造函数?

谢谢!

【问题讨论】:

也许 Hibernate 的元模型生成器不支持它。它当然是由 DataNucleus 元模型生成器 AFAIK 这可能是一个 Hibernate 错误。尝试使用 @Basic 注释显式映射 uri 字段。 【参考方案1】:

使用@Basic 注释对字段进行注释。您可能需要提供一个属性转换器。

【讨论】:

以上是关于JPA 元模型生成缺少属性的主要内容,如果未能解决你的问题,请参考以下文章

DjangoRestFramework 类序列化程序缺少“元”属性?

Mule DataWeave 转换消息失败,缺少元数据:id 属性

使用 JPA 2.1 生成元模型类

Adonis JS v5 关系缺少模型属性

JPA 容器地址簿缺少工件

使用hibernate-jpamodelgen生成jpa的元模型