Package loxia.dao

Examples of loxia.dao.Page


    return handleQueryNative(query, pjp.getThis(), ms.getMethod(), pjp.getArgs());
  }
 
  private Object handleQueryNative(Query query, Object obj, Method m, Object[] args){
    Map<String, Object> params = getParams(m, args);
    Page page = getPage(args);
    boolean pagable = (page != null) || query.pagable();   
   
    String queryString = query.value();     
    logger.debug("Query[{}] will be executed.",queryString);
   
    Sort[] sorts = getSorts(args);
   
    if(sorts != null){
      logger.debug("Query need be sorted with :" + Arrays.asList(sorts));
    }
   
    if(List.class.isAssignableFrom(m.getReturnType())){
      if(pagable){
        if(page != null)
          return daoService.findByQuery(queryString, params, sorts, page.getStart(), page.getSize());
        else if(args[0] instanceof Integer &&
            args[1] instanceof Integer)       
          return daoService.findByQuery(queryString, params, sorts, (Integer)args[0], (Integer)args[1]);
        else
          throw new IllegalArgumentException("Startindex and pagesize must be set for pagable query.");
      }else{
        return daoService.findByQuery(queryString, params, sorts);
      }
    }else if(Pagination.class.isAssignableFrom(m.getReturnType())){
      if(pagable){
        if(page != null)
          return daoService.findByQuery(queryString, params, sorts, page.getStart(), page.getSize(), query.withGroupby());
        else if(args[0] instanceof Integer &&
            args[1] instanceof Integer)       
          return daoService.findByQuery(queryString, params, sorts, (Integer)args[0], (Integer)args[1], query.withGroupby());
        else
          throw new IllegalArgumentException("Startindex and pagesize must be set for pagable query.");
View Full Code Here


    }
    return params;
  }
 
  protected Page getPage(Object[] args){
    Page page = null;
    for(Object arg: args){
      if(arg instanceof Page){
        if(page == null)
          page = (Page)arg;
        else
View Full Code Here

  }
 
  private Object handleNativeQueryNative(NativeQuery nativeQuery, Object obj, Method m, Object[] args){
    Map<String, Object> params = getParams(m, args);
   
    Page page = getPage(args);
    boolean pagable = (page != null) ||nativeQuery.pagable();   
   
    String queryName = nativeQuery.value();
    if(queryName.equals("")){
      if(!(obj instanceof ModelClassSupport))
        throw new RuntimeException("QueryName can not be empty");
      ModelClassSupport mcs = (ModelClassSupport)obj;
      queryName += mcs.getModelClass().getSimpleName();
      queryName += "." + m.getName();       
    }
   
    String queryStringWithName = getDynamicQuery(queryName, params);   
    List<Object> conditions = new ArrayList<Object>();
    String queryString = getNativeQuery(queryStringWithName, params, conditions);
   
    if(logger.isDebugEnabled()){
      logger.debug("NativeQuery[{}] will be executed", queryName);
      logger.debug("{}",queryString);
    }
   
    Sort[] sorts = getSorts(args);
    RowMapper<?> rowMapper = getRowMapper(args);
    if(rowMapper == null && (!nativeQuery.model().equals(DEFAULT.class))){
      ColumnTranslator t = null;
      try {
        if(!DummyColumnTranslator.class.equals(nativeQuery.translator())){
          t = nativeQuery.translator().newInstance();
          t.setModelClass(nativeQuery.model());
        }
      } catch (Exception e) {
        //do nothing
      }
      rowMapper = new CommonBeanRowMapper(nativeQuery.model(), t, nativeQuery.alias());
    }
    if(rowMapper == null && (nativeQuery.alias() == null || nativeQuery.clazzes() == null
        || nativeQuery.alias().length == 0
        || nativeQuery.clazzes().length == 0))
      throw new IllegalArgumentException("No return type definition found.");
   
    if(rowMapper == null && nativeQuery.alias().length != nativeQuery.clazzes().length)
      throw new IllegalArgumentException("Return alias and class definition are not matched.");
   
    if(rowMapper == null)
      rowMapper = new MapRowMapper(nativeQuery.alias(), nativeQuery.clazzes());
   
    if(sorts != null){
      logger.debug("Query need be sorted with :" + Arrays.asList(sorts));
    }
   
    if(List.class.isAssignableFrom(m.getReturnType())){
      if(pagable){
        if(page != null)
          return daoService.findByNativeQuery(queryString, conditions.toArray(), sorts,
              page.getStart(), page.getSize(), rowMapper);
        else if(args[0] instanceof Integer &&
            args[1] instanceof Integer)       
          return daoService.findByNativeQuery(queryString, conditions.toArray(), sorts,
              (Integer)args[0], (Integer)args[1], rowMapper);
        else
          throw new IllegalArgumentException("Startindex and pagesize must be set for pagable query.");
      }else{
        return daoService.findByNativeQuery(queryString, conditions.toArray(), sorts,
            -1, -1, rowMapper);
      }
    }else if(Pagination.class.isAssignableFrom(m.getReturnType())){
      if(pagable){
        if(page != null)
          return daoService.findByNativeQuery(queryString, conditions.toArray(), sorts,
              page.getStart(), page.getSize(), nativeQuery.withGroupby(), rowMapper);
        else if(args[0] instanceof Integer &&
            args[1] instanceof Integer)       
          return daoService.findByNativeQuery(queryString, conditions.toArray(), sorts,
              (Integer)args[0], (Integer)args[1], nativeQuery.withGroupby(), rowMapper);
        else
View Full Code Here

  }
 
  private Object handleNamedQueryNative(NamedQuery namedQuery, Object obj, Method m, Object[] args){
    Map<String, Object> params = getParams(m, args);
   
    Page page = getPage(args);
    boolean pagable = (page!= null) || namedQuery.pagable();   
    String queryName = namedQuery.value();
    if(queryName.equals("")){
      if(!(obj instanceof ModelClassSupport))
        throw new RuntimeException("QueryName can not be empty");
      ModelClassSupport mcs = (ModelClassSupport)obj;
      queryName += mcs.getModelClass().getSimpleName();
      queryName += "." + m.getName();       
    }
    logger.debug("Named Query[{}] will be executed.",queryName);
         
    Sort[] sorts = getSorts(args);
   
    if(sorts != null){
      logger.debug("Query need be sorted with :" + Arrays.asList(sorts));
    }
   
    if(List.class.isAssignableFrom(m.getReturnType())){
      if(pagable){
        if(page != null)
          return daoService.findByNamedQuery(queryName, params, sorts, page.getStart(), page.getSize());
        else if(args[0] instanceof Integer &&
            args[1] instanceof Integer)       
          return daoService.findByNamedQuery(queryName, params, sorts, (Integer)args[0], (Integer)args[1]);
        else
          throw new IllegalArgumentException("Startindex and pagesize must be set for pagable query.");
      }else{
        if(sorts == null)
          return daoService.findByNamedQuery(queryName, params);
        else
          return daoService.findByNamedQuery(queryName, params, sorts);
      }
    }else if(Pagination.class.isAssignableFrom(m.getReturnType())){
      if(pagable){
        if(page != null)
          return daoService.findByNamedQuery(queryName, params, sorts, page.getStart(), page.getSize(), namedQuery.withGroupby());
        else if(args[0] instanceof Integer &&
            args[1] instanceof Integer)       
          return daoService.findByNamedQuery(queryName, params, sorts, (Integer)args[0], (Integer)args[1], namedQuery.withGroupby());
        else
          throw new IllegalArgumentException("Startindex and pagesize must be set for pagable query.");
View Full Code Here

  }
 
  private Object handleDynamicQueryNative(DynamicQuery dynamicQuery, Object obj, Method m, Object[] args){
    Map<String, Object> params = getParams(m, args);
   
    Page page = getPage(args);
    boolean pagable = (page != null) ||dynamicQuery.pagable();   
   
    String queryName = dynamicQuery.value();
    if(queryName.equals("")){
      if(!(obj instanceof ModelClassSupport))
        throw new RuntimeException("QueryName can not be empty");
      ModelClassSupport mcs = (ModelClassSupport)obj;
      queryName += mcs.getModelClass().getSimpleName();
      queryName += "." + m.getName();       
    }
   
    String queryString = getDynamicQuery(queryName, params);     
    if(logger.isDebugEnabled()){
      logger.debug("DynamicQuery[{}] will be executed", queryName);
      logger.debug("{}",queryString);
    }
   
    Sort[] sorts = getSorts(args);
   
    if(sorts != null){
      logger.debug("Query need be sorted with :" + Arrays.asList(sorts));
    }
   
    if(List.class.isAssignableFrom(m.getReturnType())){
      if(pagable){
        if(page != null)
          return daoService.findByQueryEx(queryString, params, sorts, page.getStart(), page.getSize());
        else if(args[0] instanceof Integer &&
            args[1] instanceof Integer)       
          return daoService.findByQueryEx(queryString, params, sorts, (Integer)args[0], (Integer)args[1]);
        else
          throw new IllegalArgumentException("Startindex and pagesize must be set for pagable query.");
      }else{
        return daoService.findByQueryEx(queryString, params, sorts, -1, -1);
      }
    }else if(Pagination.class.isAssignableFrom(m.getReturnType())){
      if(pagable){
        if(page != null)
          return daoService.findByQueryEx(queryString, params, sorts, page.getStart(), page.getSize(), dynamicQuery.withGroupby());
        else if(args[0] instanceof Integer &&
            args[1] instanceof Integer)       
          return daoService.findByQueryEx(queryString, params, sorts, (Integer)args[0], (Integer)args[1], dynamicQuery.withGroupby());
        else
          throw new IllegalArgumentException("Startindex and pagesize must be set for pagable query.");
View Full Code Here

TOP

Related Classes of loxia.dao.Page

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.