2011-07-21 58 views
1

我有一个这样的实体:如何在HQL使用派生的财产where子句

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


    public String getCode(){ 
     return code; 
    } 

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

所以,fullCode是派生的财产,我想在我的HQL查询使用它,我怎样才能实现这一目标?

回答

3

中创建一个模型叫fullCode财产和注释这样说:

@Formula( “ledgerAccount.code +代码”) 私人字符串fullCode;

,改变你的getFullCode()方法:

public String getFullCode() { 
    return fullCode; 
} 

,然后在HQL:

select * from Account where fullCode = ? 

如果你还没有,检查this page更多的例子。

+0

谢谢你的提示,使用这个公式它的工作:@Formula(“(从帐户a中选择a.code‖代码,其中a.id = ledgeraccount_id)”) – blow