java后台框架springMvc+OpenJpa 之EntityManager查询特殊用例

开发框架:springMvc+OpenJpa
网上已经有对EntityManager的详细用法了,在这里不在重复描述了。
今天就介绍下  java后台框架springMvc+OpenJpa 之EntityManager查询特殊用例。
特殊用例一、获取得到单条数据,并且字段非bean已定义。
 
 
 EntityManager emBca   ; 
 
String sql = "select min(p.createtime) as firsttime ,max(p.createtime) as lasttime, count(p.id) as idCount from ProcInst p";
  Query  procInstQuery = emBca.createQuery(sql);
  Object[] queryObject =  (Object[]) procInstQuery.getResultList().get(0);  //procInstQuery.getResultList()获取的结果是一个                                             list,它的第一条数据就是所需要的结果 并且是一个object数组。
  Date firsttime =  queryObject[0];
  Date lasttime =  queryObject[1];

  Long idCount =  (Long) queryObject[2];  

特殊用例二、查询条件为bean的某个枚举类字段  例如:我所用到的  ProcInst 的type为枚举类
 String sql = "select count(p.id) as drillCount ,max(p.createtime) as endTime from ProcInst p where p.createtime like '"+i+"%' and (p.type = :types or p.type = :types2)";
procInstQuery = emBca.createQuery(sql);
procInstQuery.setParameter("types", ProcInst.Type.drill);
procInstQuery.setParameter("types2", ProcInst.Type.deskDrill);
queryObject = (Object[]) procInstQuery.getResultList().get(0);

ok,希望对使用openjpa开发的朋友们有用!。 

你可能感兴趣的:(java,spring,mvc,openjpa)