在select子句

时间:2019-06-13 22:45:16

标签: hibernate jpql

我需要使用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项的数量。这可能吗?

0 个答案:

没有答案