如何在hibernate中组合来自多个子查询的列

如何在hibernate中组合来自多个子查询的列,hibernate,hql,Hibernate,Hql,我想在HQL中编写以下查询: select v1.maxx, v2.maxx from (select max(id) maxx from mytable where my_column is not null ) v1, (select max(id) maxx from mytable where my_column is null) v2; 到目前为止,我得到了以下信息: DetachedCriteria d1=DetachedCriteria.forClass(MyTabl

我想在HQL中编写以下查询:

select v1.maxx, v2.maxx from
  (select max(id) maxx from mytable where my_column is not null ) v1,
  (select max(id) maxx from mytable where my_column is null) v2;
到目前为止,我得到了以下信息:

  DetachedCriteria d1=DetachedCriteria.forClass(MyTable.class, "d1")
      .setProjection(Projections.max("id"))
      .add(Property.forName("myColumn").isNull();

  DetachedCriteria d2=DetachedCriteria.forClass(MyTable.class, "d2")
      .setProjection(Projections.max("id"))
      .add(Property.forName("myColumn").isNotNull();

但我很难将它们组合成一个criteria对象。

以下是我组合两个子查询的方法:

    Criteria criteria = Criteria.forClass(MyTable.class); 
    criteria.add(Subqueries.propertyEq("v1.maxx", d2));
    criteria.add(Subqueries.propertyEq("v2.maxx", d1));

下面是我结合两个子查询的方法:

    Criteria criteria = Criteria.forClass(MyTable.class); 
    criteria.add(Subqueries.propertyEq("v1.maxx", d2));
    criteria.add(Subqueries.propertyEq("v2.maxx", d1));

找不到如何在SELECT中包含多个子查询。所以我重写了 查询如下,它与HQL一起工作:

select max(k.id), max(l.id) from myTable k, myTable l
  where k.myColumn is not null and l.myColumn is null;

找不到如何在SELECT中包含多个子查询。所以我重写了 查询如下,它与HQL一起工作:

select max(k.id), max(l.id) from myTable k, myTable l
  where k.myColumn is not null and l.myColumn is null;