情况是这样的 在hibernate中有个表ProSingle 生成的类 
public class ProSingle implements java.io.Serializable { private String id;
private Role role;    
private UserLogin userLogin;
private ProAll proAll;
private String proName;
private String userName;
private String roleName;
}
属性中关联了其他表中的类 private UserLogin userLogin;  private ProAll proAll;我想查询是这样的
Session session=null;
 session = HibernateSessionFactory.getSession(); 
  Query q=session.createSQLQuery("from ProSingle where proId="+proid+"and userId="+userid+"");
ProId 和userId 不是ProSingle的属性  而是  
public class ProAll implements java.io.Serializable {
private String proId;}public class UserLogin implements java.io.Serializable {
private String userId;}能这样查询吗?

解决方案 »

  1.   

    试下这个:

    from ProSingle where proAll.proId="+proid+"and UserLogin.userId="+userid+"
      

  2.   

    还是不行啊,org.hibernate.exception.SQLGrammarException: could not execute query
      

  3.   

    应该可以,前提是你的hibernate映射表用对应的UserLogin ,ProAll 一对多关系,hql要求的where字句必须与你的pojo对应, where 子句等同于你已经建立了这几个表联接的关系的前提下的再筛选;
      

  4.   

    应该可以,前提是你的hibernate映射表用对应的UserLogin ,ProAll 一对多关系,hql要求的from字句必须与你的pojo对应, where 子句等同于你已经建立了这几个表联接的关系的前提下的再筛选;