2017-03-06 28 views
0

這裏我有兩個Entity類。HQL中空引用對象的引用屬性

@Table(name = "AC_ACCOUNT_MASTER") 
public abstract class Account implements Serializable { 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Long id; 

    @Column(name = "a_name") 
    private String name; 
} 

而且

@Table(name = "AC_VOUCHER_MASTER") 
public class Voucher implements Serializable { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Long id; 

    private Double amt; 

    @ManyToOne 
    private Account drAc; 

    @ManyToOne 
    private Account crAc; 

} 

有在AC_VOUCHER_MASTER表,其中4個drAc數據在AC_VOUCHER_MASTER表是null 10行。

session.createQuery("select v.id, v.amount, v.drAc.id, v.crAc.id from Voucher v").list(); 

上述查詢返回箱10的結果(雖然4 drAcnull)。但是,當我放置名稱參考(v.drAc.name)時,它僅返回那些drAc不是null的行(6行)。

"select v.id, v.amount, v.drAc.id, v.drAc.name, v.crAc.id , v.crAc.name from Voucher v" 

現在該怎麼辦?有沒有使用coalesce()或其他?

回答

1

使用左連接:

select v.id, v.amount, drAc.id, drAc.name, crAc.id , crAc.name 
from Voucher v 
left join v.drAc drAc 
left join v.crAc crAc 
+0

謝謝。它的工作 –