Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取查询中实体嵌套列表的总大小?_Java_Jpa_Querydsl - Fatal编程技术网

Java 如何获取查询中实体嵌套列表的总大小?

Java 如何获取查询中实体嵌套列表的总大小?,java,jpa,querydsl,Java,Jpa,Querydsl,我使用的是JPA,我的数据结构如下: 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<Attribut

我使用的是JPA,我的数据结构如下:

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;
}
classcontainera{
长id;
名单b;
}
集装箱B类{
长id;
名单C;
}
集装箱类{
长id;
列出设备清单;
}
类设备{
长id;
列出属性;
}
类属性{
长id;
长期价值;
}
我需要的是一个查询,以获得所有ContainerID的列表,以及相应的
设备总数
属性总数
,以及所有
值的总和

我是JPA的新手,我尝试过使用QueryDSL,但我没有成功地让它工作


什么查询是获取所需信息的最佳方式?

对此类报告使用SQL。这更容易,我打赌也会快得多。下面是一个非常简单的查询:

选择
a、 身份证,
将(不同的d.id)计数为设备,
计数(附件id)作为属性,
总和(附件值)为TotalAttributeValue
从ContainerA作为
左连接容器b作为a.id=b.a\U id上的b
左连接容器作为b.id上的c=c.b_id
左连接设备作为c.id上的d=d.c\U id
左连接属性作为att ON d.id=att.d_id
按a.id分组
我假设您的模式中只有一对多的关系。如果设备和属性之间存在多对多关系,查询可能会更复杂一些