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

时间:2011-07-21 21:44:05

标签: hibernate hql

我有这样一个实体:

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


    public String getCode(){
        return code;
    }

    public String getFullCode(){
        return ledgerAccount.getCode()+code;
    }
}

所以,fullCode是一个派生属性,我想在我的hql查询中使用它,我该如何实现呢?

1 个答案:

答案 0 :(得分:3)

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

  

@Formula( “ledgerAccount.code +代码”)   private String fullCode;

并将您的getFullCode()方法更改为:

public String getFullCode() {
    return fullCode;
} 

然后在你的HQL中:

select * from Account where fullCode = ?

如果您还没有,请查看this page了解更多示例。