Java 将OneToMany和x2B结合起来;FetchType.LAZY+;懒散收藏+;jackson数据类型hibernate返回JSON中的大小

Java 将OneToMany和x2B结合起来;FetchType.LAZY+;懒散收藏+;jackson数据类型hibernate返回JSON中的大小,java,json,spring-boot,hibernate,Java,Json,Spring Boot,Hibernate,我想知道是否有以下可能 我有一些家长课 @实体 公共类父类{ 私有字符串名称; @LazyCollection(LazyCollectionOption.EXTRA) @OneToMany(mappedBy=“parent”,fetch=FetchType.LAZY) @JsonManagedReference private List children=new ArrayList(); } 很明显,我的孩子在上课 @实体 公营儿童{ @manytone(fetch=FetchType.LAZ

我想知道是否有以下可能

我有一些家长课

@实体
公共类父类{
私有字符串名称;
@LazyCollection(LazyCollectionOption.EXTRA)
@OneToMany(mappedBy=“parent”,fetch=FetchType.LAZY)
@JsonManagedReference
private List children=new ArrayList();
}
很明显,我的孩子在上课

@实体
公营儿童{
@manytone(fetch=FetchType.LAZY)
@JsonBackReference
私人家长;
}
我用它来确保惰性加载确实有效,而jackson不包括整个列表。我使用bean注册模块

@Bean
公共Hibernate5模块数据类型HibernateModule(){
返回新模块();
}
一切正常。目前我的JSON是这样的

{
“姓名”:“我的姓名”,
“children”:空
}
在我的前端应用程序中,我想显示父
名称
和子
的数量
。是否可以在不使用自定义查询的情况下返回子项的大小

{
“姓名”:“我的姓名”,

“children”:3141您可以运行此JPQL查询:

select p.name, count(c)
join Person p left join p.children c
group by p.name

我很困惑。你是在问,如果不提取列表的元素,是否可以知道列表的大小?另外,在调用
list.size()之后,你是否真的看到了
select count()…
查询
?这会让人吃惊是的,我想知道列表的大小,而不必获取其元素。这就是延迟加载和
LazyCollection
的全部要点。
count
sql语句只有在调用
size()时才会执行
方法。如果您为hibernate和BasicBinder启用跟踪和调试日志记录,您可以真正看到
count
语句。现在我想知道是否可以将大小发送到我的前端应用程序,而无需创建自定义查询或自定义投影。如果它真的像这样工作,那么最简单的解决方案是r使用
int children
属性返回DTO,您的服务将使用
getChildren().size()
填充该属性。我认为这不会比这更容易。这就是我所想的,我想知道是否还有一个我不知道的“已内置到框架中”解决方案。谢谢您的评论!