java hql 多表查询语句,多表关联(二)-hql语句查询

class="java" name="code">

String hql="select new com.sinosoft.education.prototype.TeacherInfoBean(" +

"ti.teacherId," +

"ti.teacherName," +

"(select min(pt.teacSchoolStartTime) from ti.sysEduProjectTeachers pt where pt.teacSchoolEndTime >:endtime and pt.teacSchoolStartTime <=:endtime)," +

"(select min(pt.teacSchoolEndTime) from ti.sysEduProjectTeachers pt where pt.teacSchoolEndTime >:endtime and pt.teacSchoolStartTime <=:endtime)," +

"isnull((select avg(pl.lessonTeacherPoint) from ti.sysEduProjectLessons pl ),0.0)" +

") " +

"from SysTeaTeactherInfo ti left join ti.sysTeaProfFields pf " +

"where concat(',',trim(str(pf.fieldId)),',',pf.fieldFatherStr) like "+"'%,"+fieldId.toString()+",%'" ;

List teacherIds=this.findByNamedParam(hql,new String[]{"endtime"},new Object[]{DateUtil.parse("2013-11-29")});

for(TeacherInfoBean id:teacherIds)

{

System.out.println(id.getTeacherName());

System.out.println(id.getTeacherId());

System.out.println(id.getAvg());

System.out.println(DateUtil.toString(id.getComeTime()));

System.out.println(DateUtil.toString(id.getEndTime()));

}

String countHql="select count(*)"+

"from SysTeaTeactherInfo ti " +

"left join ti.sysTeaProfFields pf " +

"left join ti.sysEduProjectTeachers pt " +

"where concat(',',trim(str(pf.fieldId)),',',pf.fieldFatherStr) like "+"'%,"+fieldId.toString()+",%' " +

"and (pt.teacSchoolEndTime >=:endtime)or(pt.teacSchoolEndTime <= :endtime)" ;

System.out.println("=======================================");

return this.findByHqlOnPage(hql, page, countPerPage, new String[]{"endtime"},new Object[]{DateUtil.parse("2013-11-29")},countHql);

同时需要自定义teacherbean 且bean中的属性必须和hql语句中的元素顺序相同,否则可能会出现传值错误

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值