select * from room r where r.roomId not in (select c.roomId from custom c where c.roomId = r.room_id and datediff(c.customTime,now())=1)

解决方案 »

  1.   

    有sql为毛要写hql呢?
    SQLQuery createSQLQuery = this.getSession().createSQLQuery(
    sql);
    List list = createSQLQuery.list();
    直接用sql多好
      

  2.   

    把表名改成实体类 里面要查的元素换成实体类的东西 
    select * 去掉我感觉还是用sql比较省心,直接用sqlquery加载安全
    hql的话改的有一点差错就不怎么好用了
      

  3.   

    hql语句中不能带*
    相应表的字段改成相应对象的属性就可以了 
    from Room where Room.id not in (select Custom.id from Custom 
    where datediff(customTime,now())=1))
    祝你成功
      

  4.   

    表明改成实体类名称,
    相应表的字段改成相应实体类的属性就可以了 ;或者直接用queryforsql 直接调用sql借口出来的是map类型的集合,拿出相应的字段注入到对象中就可以了