一般不自己写hql语句,而是用三个表之间的主外键关系
对应成配置文件,通过他们间的关系得到。

解决方案 »

  1.   

    对于多表查询的问题 , 需要在配置文件里分别设置这三个表的关系,这就涉及到级联查询的问题
    你自己可以去看看hibernate的一对一 一对多的查询文档,都讲了如何实现多表查询的问题
      

  2.   

    在配置文件里面映射好了 我想要个查询的hql语句啊
    谁能帮我写个
      

  3.   

    一般用内部类的
    就是
    HibernateTemplet().execute(
    new HibernateCallback(Session session){
    Criteria c = session.createCriteria() ;
    c.add()
    .........
    }
    ) ;
    查处了第一个在内部类中查第二个..记得是在内部类中否则就延迟加载了..
      

  4.   

    试试,我刚学几天:
    tbdepart(deptId , deptname ) 
    tbdeptuser(deptId , userId) 
    tbuser(userId ,username) 自己配置好多对一(u->d)关系SELECT d.deptname 
    from tbuser u join tbdepart d
    where u.userId = xxx
      

  5.   

    有个偷懒的办法
    <hibernate-mapping>
        <class name="com.entity.Billorder" table="BILLORDER" schema="SCOTT" lazy="false">
    将lazy设成false
    不过会对速度有点小引响
      

  6.   

    有三个表 
    单位信息表 
    tbdepart(deptId , deptname ) 
    单位用户关系表 
    tbdeptuser(deptId , userId) 
    用户表 
    tbuser(userId ,username) 
    假设她们对应的类分别是:Depart,De_User,User。
    我想可以这样子:
    ...De_User deUser=(De_User)session.get(De_User.class,userId);//根据已知的用户ID查询
    Depart depart =(Depart )session.get(Depart.class,deUser.getDeptId());
    String deptname =depart .getDeptName();//部门名字...
      

  7.   

    在单位和用户两个实体上分别配置多对多的关系(set)。
      

  8.   

    有三个表 
    单位信息表 
    tbdepart(deptId , deptname ) 
    单位用户关系表 
    tbdeptuser(deptId , userId) 
    用户表 
    tbuser(userId ,username) 
    表设计的不懂了。 用户应该只属于一个单位吧,单位应该有多个用户,那么单位和用户是1对多关系,这样的话,就很方便很方便了
      

  9.   

    用hibernate的多表关联应该可以吧!
    many-to-many好像是!我也记不清了,很长时间不用了!
    你为什么非要用heibernate来写呢,写sql语句不是一样吗?