2017-04-06 6 views
0

Stellen Ich habe 2 Stellen und die Abfrage:Hibernate HQL Konstruktor Ausdruck

select p, n.name 
    from ProductOffering p 
    left join ProductOfferingName n on (n.productOfferingId =  p.productOfferingId and n.salesChannelId= :salesChannelId) 

Hibernate SQL-Abfrage mit allen Spalten von p und Namensspalte von n ausstellt und das Rück mich [] Objekt. Aber mit Objekt Umgang [] ist nicht typsicher, ich werde also versuchen, „Konstruktor Ausdruck“ zu verwenden:

select new com.peterservice.ccm.pom.internal.api.model.ProductOfferingResult(p, n.name) 
    from ProductOffering p 
    left join ProductOfferingName n on (n.productOfferingId = p.productOfferingId and n.salesChannelId= :salesChannelId) 

Mit dieser Abfrage nur wählen p.id + n.name Hibernate und es für jede Zeile Ausgabe "Wählen * aus ProductOffering p wobei p.id =: id" (n + 1 Problem)

Ist dieses Verhalten normal und erwartet?

Antwort

0

Try "joinlinks holen" zu ändern:

select new com.peterservice.ccm.pom.internal.api.model.ProductOfferingResult(p, n.name) 
    from ProductOffering p 
    left join fetch ProductOfferingName n on (n.productOfferingId = p.productOfferingId and n.salesChannelId= :salesChannelId)