2017-03-06 2 views
0

Hier habe ich zwei Entity Klasse.Referenz Eigenschaften von Null referenzierten Objekt in 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; 
} 

Und

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

} 

Es gibt 10 Zeilen in AC_VOUCHER_MASTER Tabelle, wo 4 drAc Daten null in AC_VOUCHER_MASTER Tabelle sind.

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

Die obige Abfrage gibt mir 10 Ergebnis (obwohl 4 drAc sind null). Aber wenn ich name reference (v.drAc.name), gibt es nur die Zeilen (6 Zeilen), die drAc ist nicht null.

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

Was soll ich jetzt tun? Gibt es coalesce() oder etwas anderes?

Antwort

1

links JOIN:

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

Danke. Es funktioniert –

Verwandte Themen