当前位置:编程学习 > JAVA >>

SSH框架中多对多联合查询,关于集合传值问题

如题,小弟在做一个ERP系统,现在做考勤这一块,遇到了如下问题:
一员工表,实体类HRUser如下:
        private int id; //员工编号
private String name; //员工姓名
private String gender; //员工性别
private String department;//员工部门
private String position;//员工职位
        private Set<Attence> attence=new HashSet<Attence>();
hbm.xml中配置:  此处只写出set   
 <set name="attence" cascade="save-update" inverse="false"  lazy="false"
            table="HRUSER_ATTENCE">
            <key column="HR_ID"></key>
            <many-to-many  class="attence.Attence" column="ID"></many-to-many>
            </set>     
ID为Attence对应数据库表的主键
考勤表:实体类Attence如下:
        private int id;
private Date date_time;
private Date time;
private String remark;
private Set<HRUser> hrUser=new HashSet<HRUser>();
hbm.xml文件 :
<set name="hrUser" cascade="save-update" inverse="true" lazy="false"
            table="HRUSER_ATTENCE">
            <key column="ID"></key>
            <many-to-many  class="HRUser.HRUser" column="HR_ID"></many-to-many>
            </set>
HR_ID为HRUser对应数据库表的主键
现在想获得每个员工每次打卡的信息,做一个连接查询:
list=session.createQuery("select t.id,t.date_time,t.hrUser.id,t.time,t.state,t.remark from Attence as t inner join fetch HRUser as u").list();      此处为hql不好用。
list= session.createSQLQuery("select a.ID,A.DATE_TIME,A.TIME,A.STATE,A.REMARK,b.HR_ID,b.NAME from T_ATTENCE a left join T_HRUSER b on a.HR_ID=B.HR_ID");        此处为sql依旧不好用
我是想讲这个查询的结果list传给action ,然后由后台提交给前台,showAttence,想显示一下信息:
<td>编号</td>
<td>日期</td>
<td>打卡时间</td>
<td>状态</td>
<td>备注</td>
<td>员工编号</td>
<td>名字</td>
,尝试了很多办法,不是空指针就是类转换异常,无法传值,希望大家能给支支招,帮帮小弟!谢谢!
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,