Hibernate 如何在HQL where子句中使用派生属性

Hibernate 如何在HQL where子句中使用派生属性,hibernate,hql,Hibernate,Hql,我有这样一个实体: public class Account{ private String code; @ManyToOne private Account ledgerAccount; public String getCode(){ return code; } public String getFullCode(){ return ledgerAccount.getCode()+code; }

我有这样一个实体:

public class Account{
    private String code;
    @ManyToOne
    private Account ledgerAccount;


    public String getCode(){
        return code;
    }

    public String getFullCode(){
        return ledgerAccount.getCode()+code;
    }
}
因此,fullCode是一个派生属性,我想在我的hql查询中使用它,如何实现这一点?

在您的模型中创建一个名为fullCode的属性,并对其进行如下注释:

public class Account{
    private String code;
    @ManyToOne
    private Account ledgerAccount;


    public String getCode(){
        return code;
    }

    public String getFullCode(){
        return ledgerAccount.getCode()+code;
    }
}
@FormulaledgerAccount.code+代码 私有字符串完整码

并将getFullCode方法更改为:

public String getFullCode() {
    return fullCode;
} 
然后在HQL中:

select * from Account where fullCode = ?

如果您还没有,请查看更多示例。

谢谢您的提示,使用此公式即可:@Formulaselect a.code | | code from Account a.id=ledgeraccount_id