Java 使用Hibernate加入@Formula

Java 使用Hibernate加入@Formula,java,hibernate,join,aggregate,formula,Java,Hibernate,Join,Aggregate,Formula,加载实体时,我将使用@Formula注释使用聚合函数 如果我使用下面的语句,我将得到一个异常 (SELECT sum(inovalue.vba) FROM INO i_no INNER JOIN i_no.listValues inovalue WHERE i_no.id = '91c78419-e528-453f-a60d-9f2050e12c79') 实体Ino @Entity @FilterDef(name="inoDateFilter", parameters=@ParamDef( n

加载实体时,我将使用@Formula注释使用聚合函数

如果我使用下面的语句,我将得到一个异常

(SELECT sum(inovalue.vba) FROM INO i_no INNER JOIN i_no.listValues inovalue WHERE i_no.id = '91c78419-e528-453f-a60d-9f2050e12c79') 实体Ino

@Entity 
@FilterDef(name="inoDateFilter", parameters=@ParamDef( name="inoDateFilterParam", type="integer" ) )
@Table(name="ino")
public class Ino {

    @Id
    @GeneratedValue(generator="uuid")
    @GenericGenerator(name="uuid", strategy="org.hibernate.id.UUIDGenerator")
    @Column(length=40)
    private String id = "";

    @OneToMany (orphanRemoval=true, cascade=CascadeType.ALL)
    @LazyCollection(value=LazyCollectionOption.FALSE)
    @JoinColumn(name = "ioifeflref_id")
    @Filter(name = "inoDateFilter", condition="year(datumVon) = :inoDateFilterParam")
    @OrderBy("datumVon ASC")
    private List<InoValue> listIntervallFeFl = new ArrayList<InoValue>();

    public INO() {
    }
}
怎么了?对于测试,我使用derby数据库

有人知道吗

问候
MS-Tech

确保
@Formula
注释的内容是有效的SQL而不是HQL/JPQL

@Entity
@Table(name = "cs")
public class Cs  {

    @Id
    @GeneratedValue(generator="uuid")
    @GenericGenerator(name="uuid", strategy="org.hibernate.id.UUIDGenerator")
    @Column(length=40)
    private String id = "";

    @Column(name = "inoId_ref_id", length = 40)
    private String inoId = null;

    @Formula("(SELECT sum(inovalue.vba) FROM Ino i_no INNER JOIN i_no.listValues inovalue WHERE i_no.id = inoId)")
    private Double lbst = null;

    public Cs() {
    }
}
@Entity 
@FilterDef(name="inoDateFilter", parameters=@ParamDef( name="inoDateFilterParam", type="integer" ) )
@Table(name="ino")
public class Ino {

    @Id
    @GeneratedValue(generator="uuid")
    @GenericGenerator(name="uuid", strategy="org.hibernate.id.UUIDGenerator")
    @Column(length=40)
    private String id = "";

    @OneToMany (orphanRemoval=true, cascade=CascadeType.ALL)
    @LazyCollection(value=LazyCollectionOption.FALSE)
    @JoinColumn(name = "ioifeflref_id")
    @Filter(name = "inoDateFilter", condition="year(datumVon) = :inoDateFilterParam")
    @OrderBy("datumVon ASC")
    private List<InoValue> listIntervallFeFl = new ArrayList<InoValue>();

    public INO() {
    }
}
@Entity 
@Table(name="inovalue")
public class InoValue  {

    @Id
    @GeneratedValue(generator="uuid")
    @GenericGenerator(name="uuid", strategy="org.hibernate.id.UUIDGenerator")
    @Column(length=40)
    private String id = "";

    @Column(name = "vba")
    private Double vba = null;

     */
    public InoValue() {
    }
}