title: lovecraftian: hibernate HQL IS EMPTY does not work and renders absurdly complex SQL
body: <p>Hullo,</p>
  
  <p>This is the story: i have a one to many. one being "RadicadoOficio" and many being "RespuestaOficio"</p>
  
  <p>i just want to select all rads who have no resps.</p>
  
  <p>These are the entities (shortened for educational purposes):</p>
  
  <pre><code>@Entity
  @Table(name="COR_RADICADO_OFICIO")
  public class RadicadoOficio {   
      @OneToMany(mappedBy="radicado")
      private List&lt;RespuestaOficio&gt; respuestas;
  
      @Column(name="requiere_respuesta")
      private Long requiereRespuesta;
  }
  
  @Entity
  @Table(name="cor_respuesta_oficio")
  public class RespuestaOficio {
      @ManyToOne
      @JoinColumns({@JoinColumn(name = "num_radicado"), @JoinColumn(name="ano_radicado")})
      private RadicadoOficio radicado;
  }
  </code></pre>
  
  <p>This DAO method:</p>
  
  <pre><code>HibernateUtil.getCurrentSession().createQuery("select obj from " + sample.getCanonicalName() + " obj where  obj." + longProp+ " = ? and obj." + childrenProp + " IS EMPTY" )
              .setLong(0, longVal );
  
      if (firstResult != null) {
          q.setFirstResult(firstResult);
          q.setMaxResults(maxResults);
      }
  
      return q.list();
  </code></pre>
  
  <p>renders this stuff:</p>
  
  <p>select * from ( select row_.*, rownum rownum_ from ( select radicadoof0_.ANO_RADICADO as ANO1_8_, radicadoof0_.NUM_RADICADO as NUM2_8_, radicadoof0_.anexos as anexos8_, radicadoof0_.antecedentes as antecede4_8_, radicadoof0_.asunto as asunto8_, radicadoof0_.complemento_direccion as compleme6_8_, radicadoof0_.estado_radicado as estado7_8_, radicadoof0_.fecha_radicado as fecha8_8_, radicadoof0_.fecha_recibido as fecha9_8_, radicadoof0_.fecha_registro as fecha10_8_, radicadoof0_.fecha_vencimiento as fecha11_8_, radicadoof0_.folios as folios8_, radicadoof0_.INTERNO_FUNCIONARIO as INTERNO19_8_, radicadoof0_.INTERNO_ESTATUS as INTERNO13_8_, radicadoof0_.item as item8_, radicadoof0_.num_planilla as num14_8_, radicadoof0_.num_respuesta as num15_8_, radicadoof0_.INTERNO_PETICIONARIO as INTERNO21_8_, radicadoof0_.requiere_respuesta as requiere16_8_, radicadoof0_.respuesta_multiple as respuesta17_8_, radicadoof0_.tipo_aplicativo as tipo18_8_ from COR_RADICADO_OFICIO radicadoof0_ where radicadoof0_.requiere_respuesta=? and  not (exists (select respuestas1_.INTERNO_RESPUESTA from cor_respuesta_oficio respuestas1_ where radicadoof0_.ANO_RADICADO=respuestas1_.num_radicado and radicadoof0_.NUM_RADICADO=respuestas1_.ano_radicado)) ) row_ ) where rownum_ &lt;= ? and rownum_ > ?</p>
  
  <p>and oracle throws up a "not valid number" error that i dont understand.</p>
  
  <p>any help is welcome, tnx</p>