我现在有4张表
湿地 (sid,sname)
站点, (zid,sid,zname)
任务, (rid,rname)
任务日志,(logid,rid,message)
四张表从上到下依次主外关联 
现在我要通过湿地的标号来查询任务日志表的信息!
有什么好办法?
我的想法是
4表外联查询 我现在用sql语句能实现 .但是现在要求用hql语句我就不会写了.
因为生成的join 是对象名 而不是字段... //任务日志表
private String id;
private WaterTaskInfo waterTaskInfo;//任务外键.就是这里是对象
private Date begintime;
private Date endtime;
private Short issuccess;
private String content;希望高手帮帮忙 现在我把lazy=false了 查任务日志表的时候 所有的东西都能出来
如果大家有什么其他的好办法也好

解决方案 »

  1.   

    可以用延迟加载,
    先查湿地(form 湿地 where id =?)
    然后 湿地.get站点().get任务().get任务日志()
    OK
      

  2.   

    湿地 (sid,sname) 
    站点, (zid,sid,zname) 
    任务, (rid,rname) 
    任务日志,(logid,rid,message) 从你上面的表结构来看,你的湿地和任务日志之间不存在关系至少站点和任务应该有所关联才可以 根据 湿地 查到 任务日志的表结构似乎有问题。
      

  3.   

    你的关系是这样的吗?
    站点  ->(一对多)站点   ->(一对多) 任务  -> (一对多) 任务日志
    如果是这样的话,你可以查询的字段为任务日志,条件是湿地 
    如:from 任务日志 where 任务(WaterTaskInfo).站点.站点.id=你的条件
      

  4.   

    楼主会sql就可以了啊。你用createSQLQuery可以执行sql查询。