我需要使用jpql查询来获取集合中是否存在特定子类的项目。
我有一个jpql查询,它使用Size jpql函数返回一个不为空的集合,但该集合(称为子代)属于Node类,它具有一些子类,例如文件夹或文档。我在每个子类继承模式下使用表。我有一个用于Node的表,另一个用于Folder的表,另一个用于Document的表。文件夹和文档继承自Node。
TypedQuery<FolderDTO> q= sessionFactory.getCurrentSession().createQuery(
"SELECT new com.enterprise.dto.FolderDTO(c.id, c.name,
c.order, SIZE(c.children) > 0) FROM Folder c WHERE c.parent.id =
:idParent group by c.id, c.name, c.order", FolderDTO.class);
q.setParameter("idParent ", idParent);
q.getResultList();
我的DTO构造函数是
public FolderDTO(Long id, String name, int order, boolean hasChildren) {
super();
this.id = id;
this.name= name;
this.order= order;
this.hasChildren= hasChildren;
}
我想获取集合中Folder项的数量。这可能吗?