Java 如何获取查询中实体嵌套列表的总大小?
我使用的是JPA,我的数据结构如下: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
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分组
我假设您的模式中只有一对多的关系。如果设备和属性之间存在多对多关系,查询可能会更复杂一些