小弟对hibernate刚上路。就遇到很多问题,SQL语句方法好像在hibernate里行不通。问题是这样:
 表Category: id ,name,content,pid;  
 表Product:  id ,name,content,categoryid;  //categoryid为外键,就是category的id我要查询Product表id=categoryid的结果,我是这么写的:
From Product as p where p.id=p.categoryid;行不通,我发现好像是设置了外键的原因,只要查询语句里没有外键,我上面的语句就能执行,搞的我郁闷了,不知道是什么原因,请大家帮帮小弟

解决方案 »

  1.   

    要写bean类中定义的列名,而不是写表中的列名,最好把bean中的跟表中的列名对应起来。
      

  2.   

     
    如果在javabean实体中:是这么定义的----private Category categoryid=new Category ();后面有get和set方法 
    应该这么写的:
    From Product as p where p.id=p.categoryid.id
      

  3.   

    From 后面的是javaBean 
    From Product as p where p.id=p.categoryid
    Product 应该是javaBean类并且有getId方法和getCategoryid方法
      

  4.   

    可能是你们没看清楚我的题意,我其实没有跨表查询,查的是一个表
    表Product:ID NAME categoryid     我要查出Product里面id=categoryid的,没有牵涉外联
      

  5.   

    hibernate干什么的?
    hibernate用来映射关系和对象的持久层框架
    关系:R
    对象 : O
    映射:M
    合起来:ORM
    hibernate 要从对象中查询你要的数据。
    你的对象是谁呀。From 后面的是javaBean 
    From Product as p where p.id=p.categoryid 
    Product 应该是javaBean类并且有getId方法和getCategoryid方法