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 开发