2017-07-13 2 views
2

ich JPA verwende, und ich habe wie diese eine Datenstruktur:Wie kann man die Größe verschachtelter Listen einer Entität in einer Abfrage ermitteln?

class ContainerA { 
    long id; 
    List<ContainerB> bs; 
} 

class ContainerB { 
    long id; 
    List<ContainerC> cs; 
} 

class ContainerC { 
    long id; 
    List<Device> devices; 
} 

class Device { 
    long id; 
    List<Attribute> attributes; 
} 

class Attribute { 
    long id; 
    long value; 
} 

Was ich brauche, ist eine Abfrage eine Liste aller ContainerA IDs zu bekommen, mit ihrer Gesamtzahl der devices, Gesamtzahl der attributes entspricht, und die Summe aller value s;

Ich bin neu in JPA und ich versuchte mit QueryDSL, aber ich schaffte es nicht, es zum Laufen zu bringen.

Welche Abfrage ist der beste Weg, um die Informationen zu bekommen, die ich brauche?

Antwort

10

Verwenden Sie SQL für diese Art von Bericht. Es ist einfacher und ich wette, es wird auch viel schneller. Hier ist eine wirklich einfache Abfrage:

Ich nehme an, dass es nur 1: n-Beziehungen in Ihrem Schema gibt. Wenn zwischen Geräten und Attributen eine Viele-zu-Viele-Beziehung besteht, ist die Abfrage möglicherweise etwas komplizierter.

Verwandte Themen