2017-03-06 35 views
0

ここには2つのEntityクラスがあります。HQLのnull参照オブジェクトの参照プロパティ

@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; 

} 

4つのdrAcデータAC_VOUCHER_MASTERテーブルにnullあるAC_VOUCHER_MASTER表の10行があります。

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

上記のクエリは私10結果を返す(4 drAcnullであるが)。しかし、名前の参照(v.drAc.name)を入れると、drAcnullではない行(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

ありがとうございました。その働き –

関連する問題