Project

General

Profile

« Previous | Next » 

Revision 50968

fixing issues with ordering and types filter

View differences:

QueryGenerator.java
599 599
    }
600 600

  
601 601
    private  String addFilterByType( List<String> types, ArrayList<Object> params) {
602
        if(types == null || types.isEmpty()){
602
        logger.debug(types);
603
        if(types == null || types.isEmpty() || (types.size() == 1 && types.get(0).isEmpty())){
603 604
            return null;
604 605
        }else if (types.contains(ClaimUtils.PUBLICATION) && types.contains(ClaimUtils.DATASET) && types.contains(ClaimUtils.SOFTWARE) && types.contains(ClaimUtils.PROJECT) && types.contains(ClaimUtils.CONTEXT) ){
605 606
            //it's all types - no need to filter
......
727 728
        String clause = "source.openaire_id =?";
728 729
        ArrayList<Object> clauseParams = new ArrayList<>();
729 730
        clauseParams.add(projectId);
731
        String filterByType = addFilterByType(types, clauseParams);
732
        clause+= ((filterByType==null)?"":" and ("+filterByType+") ");
730 733
        String query = " select * from ("+" select * from ( " + generateSelectclaimQuery(ClaimUtils.PROJECT, ClaimUtils.PUBLICATION, limit, offset, orderBy, desc, clause, clauseParams, keyword, params) + " ) as claim  "+
731 734
                ") as claim ";
732
                String filterByType = addFilterByType(types, params);
733
                query += ((filterByType==null)?"":" where "+filterByType+" ");
735

  
734 736
                return query;
735 737
    }
736 738
/*
......
752 754
        String clause=  "claim.source_id like ?";
753 755
        ArrayList<Object> clauseParams = new ArrayList<>();
754 756
        clauseParams.add(contextId+'%');
757
        String filterByType = addFilterByType(types, clauseParams);
758
        clause+= ((filterByType==null)?"":" and ("+filterByType+") ");
755 759
        String query = " select * from ("+" ( " +generateSelectclaimQuery(ClaimUtils.CONTEXT,ClaimUtils.PUBLICATION,limit, offset, orderBy,desc,clause,clauseParams, keyword, params)+")"+
756
                ") as claim ";
757
                String filterByType = addFilterByType(types, params);
758
                query += ((filterByType==null)?"":" where "+filterByType+" ");
760
                 ") as claim ";
759 761
        return query;
760 762
    }
761 763
    public  String generateFetchClaimsByFunder(String funderId, Integer limit, Integer offset,String keyword, String orderBy, boolean desc, List<String> types, ArrayList<Object> params) {
762 764
        String whereClause = "source_id =source.openaire_id ";
763 765
        ArrayList<Object> whereParams = new ArrayList<>();
766
        String filterByType = addFilterByType(types, whereParams);
767
        whereClause+= ((filterByType==null)?"":" and ("+filterByType+") ");
764 768
        String query = " select * from ("+" ( " +generateSelectclaimQuery(ClaimUtils.PROJECT,ClaimUtils.PUBLICATION, limit, offset, orderBy,desc,whereClause,whereParams, keyword, params)+" )"+
765 769
                ") as claim ";
766
                String filterByType = addFilterByType(types, params);
767
                query += ((filterByType==null)?"":" where "+filterByType+" ");
768 770

  
771

  
769 772
        return query;
770 773
    }
771 774
    public  String generateFetchClaimsByResult(String resultId,  Integer limit, Integer offset, String keyword, String orderBy, boolean desc, List<String> types, ArrayList<Object> params) {
......
773 776
        ArrayList<Object> whereParams = new ArrayList<>();
774 777
         whereParams.add(resultId);
775 778
         whereParams.add(resultId);
779
        String filterByType = addFilterByType(types, whereParams);
780
        queryWhereClause+= ((filterByType==null)?"":" and ("+filterByType+") ");
776 781
        String query =  " select * from ("+" ( " +generateSelectclaimQuery(ClaimUtils.PUBLICATION,ClaimUtils.PUBLICATION, limit, offset, orderBy,desc,queryWhereClause,whereParams, keyword, params)+" ) \nunion "+
777 782
                " ( " +generateSelectclaimQuery(ClaimUtils.PROJECT,ClaimUtils.PUBLICATION, limit, offset, orderBy,desc,queryWhereClause,whereParams, keyword, params)+" ) \nunion "+
778 783
                " ( " +generateSelectclaimQuery(ClaimUtils.CONTEXT,ClaimUtils.PUBLICATION, limit, offset, orderBy,desc,queryWhereClause,whereParams, keyword, params)+" ) "+
779 784
                ") as claim ";
780
                String filterByType = addFilterByType(types, params);
781
                query += ((filterByType==null)?"":" where "+filterByType+" ");
785

  
782 786
        return query;
783 787

  
784 788
    }

Also available in: Unified diff