`

多表关联-java层出来

    博客分类:
  • hql
 
阅读更多
一种方法:无值传递(交给java处理)
/**
  * 根据教师状态查询教师信息列表(可多状态)
  */
 @Override
 public PaginationSupport getTeacherListByTypes(
   LinkedHashMap<String, String> sort, int page, int countPerPage,
   Integer[] teacherStates, Long fieldId) {

  List<String> pn = new ArrayList<String>();
  pn.add("fieldId");
  //pn.add("teacSchoolEndTime");
  List<Object> pv = new ArrayList<Object>();
  pv.add(fieldId!=null?"%,"+fieldId.toString()+",%":"%%");
  //pv.add(new Date());
  
  String[] pns = new String[pn.size()];
  pn.toArray(pns);
  
  String hql="select distinct tti from SysTeaTeactherInfo tti " +
    "left join tti.sysTeaProfFields tpf where concat(',',trim(str(tpf.fieldId)),',',tpf.fieldFatherStr) like :fieldId " ;

  
//	 String hql = "select new Test(tti.teacherName,ept.teacSchoolStartTime) from SysTeaTeactherInfo tti " +
//	 "left join SysEduProjectTeacher ept on ept.sysTeaTeactherInfo.teacherId = tti.teacherId" +
//	 "left join tti.sysTeaProfFields tpf where tpf.fieldId like :fieldId " ;
//	 
//	 if(sort!=null&&sort.size()>0){
//	 String order = addOrder(sort);
//	 if(order!=null&&order!=""){
//	 hql = hql+" order by "+order;
//	 }
//	 }else{
//	 hql +=" order by rcd.croomBeginTime asc";
//	 }
  
  return this.findByHqlOnPage(hql, page, countPerPage,new String[]{"fieldId"},new Object[]{"%,"+fieldId.toString()+",%"});
  
 } 


//教师是否在校
  if(this.getSysEduProjectTeachers()!=null){
   Date comeTime = null;
   Date endTime = null;
   Iterator<SysEduProjectTeacher> it = this.getSysEduProjectTeachers().iterator();
   while(it.hasNext()){
    SysEduProjectTeacher sysEduProjectTeacher = it.next();
    Date comeDate = sysEduProjectTeacher.getTeacSchoolStartTime();
    Date endDate = sysEduProjectTeacher.getTeacSchoolEndTime();
    if(endDate.compareTo(nowDate)>=0){
     comeTime = comeDate;
     endTime = endDate;
    }
   }
   super.putMap("comeTime", comeTime==null?"不在校":DateUtil.toString(comeTime));
   super.putMap("endTime", endTime==null?"不在校":DateUtil.toString(endTime));
  }else{
   super.putMap("comeTime", "不在校");
   super.putMap("endTime", "不在校");
  }
  
  if(this.getSysEduProjectLessons()!=null){
   double sum = 0;
   Iterator<SysEduProjectLesson> it = this.getSysEduProjectLessons().iterator();
   while(it.hasNext()){
    SysEduProjectLesson sysEduProjectLesson = it.next();
    sum += sysEduProjectLesson.getLessonTeacherPoint();
   }
   double avg = sum/this.getSysEduProjectLessons().size();
   avg = Math.round(avg*100);
   avg = avg/100.0;
   super.putMap("avg", avg);
  }else {
   super.putMap("avg", "0");
  }
分享到:
评论

相关推荐

    redis-core-java.zip

    这个项目是我从自己的部分项目中抽取出来。 redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash...

    多层前向神经网络Java源代码

    1、定制网络结构,可以有多个隐含层。 2、隐层节点和输出层可以关联不同的激发函数,实现了线性、tanh、sigmoid三种激发函数。 3、训练方法暂时只实现了BP。代码通俗易懂,容易自己实现其它训练算法。

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     15.3.4 把多对多关联分解为两个一对多关联  15.4 小结  15.5 思考题 第16章 Hibernate的检索策略  16.1 Hibernate的检索策略简介  16.2 类级别的检索策略  16.2.1 立即检索  16.2.2 延迟检索  16.3 一对多...

    java 后台权限管理系统

    数据访问层采用Mybatis,同时引入了通用Mapper和PageHelper插件,可快速高效的对单表进行增删改查操作,消除了大量传统XML配置SQL的代码;安全框架采用时下流行的Apache Shiro,可实现对按钮级别的权限控制;前端...

    JAVA_API1.6文档(中文)

    javax.rmi.ssl 通过安全套接字层 (SSL) 或传输层安全 (TLS) 协议提供 RMIClientSocketFactory 和 RMIServerSocketFactory 的实现。 javax.security.auth 此包提供用于进行验证和授权的框架。 javax.security.auth....

    DJ Java Decompiler 3.12.12.96 老朽痴拙汉化版(JAVA反编译)

    使用DJ Java Decompiler你还可以反编译一次性反编译多个class文件。 安装路径,如:C:/Program Files/decomp。然后将该路径加入到环境变量path中。 首先将要反编译的jar文件,用winrar解压到和jar文件名称一样...

    多对多关联关系的使用

    学习多对多关联关系的使用 SQL基础知识 Hibernate基础知识 1.将数据库eshopdb中的数据清空,添加初始化数据 2.运行MyEclipse,新建一个“Java Project”,加入mysql-connector-java-3.1.12-bin.jar和Hibernate类库...

    Java 1.6 API 中文 New

    javax.rmi.ssl 通过安全套接字层 (SSL) 或传输层安全 (TLS) 协议提供 RMIClientSocketFactory 和 RMIServerSocketFactory 的实现。 javax.security.auth 此包提供用于进行验证和授权的框架。 javax.security.auth....

    轻量级Java EE企业应用实战(第3版)-Struts2+Spring3+Hibernate全本 part1

    第三部分示范开发了一个包含7个表、表之间具有复杂的关联映射、继承映射等关系,且业务也相对复杂的工作流案例,希望让读者理论联系实际,将三个框架真正运用到实际开发中去,该案例采用目前最流行、最规范的Java EE...

    Java8处理List的双层循环问题

    主要介绍了Java8处理List的双层循环问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    JglTF:与glTF相关的Java库

    当前可用的库是和 :一组非常简单的类,代表从glTF JSON模式自动生成的glTF 1.0和2.0数据 :建立在jgltf-impl-v1和jgltf-impl-v2之上的库,它提供了读取glTF数据并以更方便在Java中使用的形式访问关联数据的功能。...

    java7源码-java8:java8函数式编程

    java7 源码 java8函数式编程 引子 为什么修改java 多核cpu 为弥补并行开发的短板 什么是函数式编程 使用高阶函数map,filter等,从更高的抽象层次考虑问题。 有什么好处 简化开发,简洁的代码 提高性能 lambda vs ...

    Java数据操作组件(过期了)

    这是个数据库操作组件,使用它,可以减少数据层代码至少一半以上,只需一句代码即可完成一次增(删改查)操作。同时支持多表关联。

    java api最新7.0

    javax.rmi.ssl 通过安全套接字层 (SSL) 或传输层安全 (TLS) 协议提供 RMIClientSocketFactory 和 RMIServerSocketFactory 的实现。 javax.security.auth 此包提供用于进行验证和授权的框架。 javax.security.auth....

    JavaAPI1.6中文chm文档 part1

    javax.rmi.ssl 通过安全套接字层 (SSL) 或传输层安全 (TLS) 协议提供 RMIClientSocketFactory 和 RMIServerSocketFactory 的实现。 javax.security.auth 此包提供用于进行验证和授权的框架。 javax.security.auth....

    java的类别方法(格式:PPT 字体:繁体)

    第4章 Java的类别方法 4-1 模组化程式设计 4-2 程序是一个黑盒子 4-3 Java的类别方法 4-4 Java的类别变数和变数范围 4-5 类别方法的过载 4-6 递回程式设计 4-7 Math数学类别的类别方法 4-1 模组化程式设计-模组 模组...

    基于Java的视频会议系统(软件程序+WORD论文文档).zip

    基于Java的视频会议系统(软件程序+WORD论文文档) 2.1.1 技术可行性 网络视频会议是顺应市场的需求而...多播通信是一类特殊的IP地址(D类IP地址)这些IP地址并不和任何主机关联,而是专门为多播通信保留下来的,地址

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    该案例采用目前最流行、最规范的java ee架构,整个应用分为jpa实体层、eao层、业务逻辑层、mvc层和视图层,各层之间分层清晰,层与层之间以松耦合的方法组织在一起。该案例既提供了ide无关的、基于ant管理的项目源码...

    javabitset源码-java_master:后端架构师技术图谱

    java bitset 源码 最后更新于20180424 (Toc generated by ) 数据结构 队列 非阻塞队列:ConcurrentLinkedQueue(无界线程安全),采用CAS机制(compareAndSwapObject原子操作)。 阻塞队列:ArrayBlockingQueue(有界...

    MyBatis的关联映射实践报告

    了解数据表之间以及对象之间的三种关联关系 2.熟悉关联关系中的嵌套查询和 嵌套结果 3.掌握一对一,一对多,和多对多关联映射作用

Global site tag (gtag.js) - Google Analytics