Java 在JPA(EclipseLink)中有一个类似@Formula的注释来设置子查询中的计算字段吗?

Java 在JPA(EclipseLink)中有一个类似@Formula的注释来设置子查询中的计算字段吗?,java,sql,jpa,eclipselink,Java,Sql,Jpa,Eclipselink,我是一个非常新的JPA用户 我想知道如何根据计算出的子查询值设置字段,例如: @[Annotation]("select count(*) from ...") long calculatedField; 有可能吗 提前谢谢。你说的话没有JPA注释。但您可以创建自己想要的注释,并在实体中使用自己的注释。请参阅在JPA中创建和使用自定义注释。我尝试使用类似于您的东西 我想把sql直接放在方法内部的列映射中 public void customizeClassDescriptor描述符引发异常

我是一个非常新的JPA用户

我想知道如何根据计算出的子查询值设置字段,例如:

@[Annotation]("select count(*) from ...") 
long calculatedField;
有可能吗


提前谢谢。

你说的话没有JPA注释。但您可以创建自己想要的注释,并在实体中使用自己的注释。请参阅在JPA中创建和使用自定义注释。

我尝试使用类似于您的东西

我想把sql直接放在方法内部的列映射中 public void customizeClassDescriptor描述符引发异常

当实验失败文档非常糟糕时,我检查了以下内容:

private BigDecimal quantityOrders;

@Column(name="(select 2 from dual) as quantityOrders",insertable = false, updatable = false)
public BigDecimal getQuantityOrders() {
    return quantityOrders;
}
。。。而且,它正在工作

然后我把更复杂的选择和它也工作。
我找不到任何相关文档。

有趣的解决方案,但您将无法在JPQL where和having子句中使用quantityOrders。JPQL从实体e中选择e,其中e.quantityOrders=值将从dual生成SQL select 2作为quantityOrders。。。其中t1.select 2 from dual as quantityOrders=valueYes,您有权,但这只是hibernate注释公式的替代品。此外,当您希望将alias与CriteriaBuilder一起用于具有已定义列的实体时,会出现问题。在注释公式中,可以使用单词“this”来指向当前表。也许我们可以使用元数据定制器,但我仍然不知道如何使用。