你仔细看看Hibernate自动生成的SQL,子查询中的where条件:
from interviewInfo interviewi1_ where instatusNO=1instatusNO 是属于哪个表的?

解决方案 »

  1.   

    回楼上:
    instatusNO是interviewInfo引用的一个外码(一个对象里面的东东),
    这里的报错重点是在can那个对象变量,表字段(name,email)和Bean
    变量(can)对应,
    写一段时间下来,我都有点糊涂了,HQL到底是针对表的还是针对Bean的,
    像上例中,如果是针对Bean的,就应该写成***.instatus=1,但是我确实
    写instatus=1成功了,那么说它又是针对数据表写的
      

  2.   

    貌似hibernate不支持子查询,请用左联或者右联,强等也行。
      

  3.   

    回楼上:
    是支持子查询的,觉得HQL很不严格,统一用对象就用对象吧,搞得有时还非得写表的字段才行
    今天是最后一天了,不出来就就算了,需求上也没有这个的。
    另外主要也是想借此机会深入了解一下HQL
      

  4.   

    另外说一下:条件查询(criteria)用了倒是觉得完全是针对对象的
      

  5.   

    StringBuffer query = new StringBuffer("from CvInfo c where c.can in (select i.can from InterviewInfo i where i.instatusNO = 1)");
    加别名实施阿
      

  6.   

    你这样写一下:
    StringBuffer query = new StringBuffer("from CvInfo where can in (select can from InterviewInfo where InterviewInfo.instatusNO = 1)");