|
[HepData-svn] r1788 - trunk/hepdata-webapp/src/main/java/cedar/hepdata/webapp/queryblackhole at projects.hepforge.org blackhole at projects.hepforge.orgMon Apr 28 15:59:36 BST 2014
Author: whalley Date: Mon Apr 28 15:59:36 2014 New Revision: 1788 Log: adding AuthorDate search and removing automatic truncation on all reaction searched Modified: trunk/hepdata-webapp/src/main/java/cedar/hepdata/webapp/query/ConstructQueryPaper.java Modified: trunk/hepdata-webapp/src/main/java/cedar/hepdata/webapp/query/ConstructQueryPaper.java ============================================================================== --- trunk/hepdata-webapp/src/main/java/cedar/hepdata/webapp/query/ConstructQueryPaper.java Thu Apr 17 17:11:01 2014 (r1787) +++ trunk/hepdata-webapp/src/main/java/cedar/hepdata/webapp/query/ConstructQueryPaper.java Mon Apr 28 15:59:36 2014 (r1788) @@ -158,7 +158,14 @@ else if(inspireid != null) { return InspireId(inspireid,flag,_session);} else if(doi != null) { return Doi(doi,flag,_session);} else if(redid != null) { return RedId(redid,flag,_session);} - else if(author != null) { return Author(author,flag,_session);} + else if(author != null) { + if(date != null){ + return AuthorDate(author,date,flag,_session); + } + else{ + return Author(author,flag,_session); + } + } else if(dsreaction!= null) { return DsReaction(dsreaction,dsobservable,flag,_session);} else if(experiment != null) { if(date != null){ @@ -722,6 +729,34 @@ } return q; } +////// query constructor for Author only/// + public static Query AuthorDate(String author,String date, String flag, org.hibernate.Session _session){ + String theAuth=author; + String theDate=date; + Query q=null; + StringBuffer b = new StringBuffer(); + + if (flag.equals("count")){ + b.append("select count(p.HepdataId) from Papers p, PaperAuthors pa, PaperRefs pr"); + } + else{ + b.append("select * from Papers p, PaperAuthors pa, PaperRefs pr"); + } + b.append(" where p.PAPER_ID=pa.PAPER_ID"); + b.append(" and p.PAPER_ID=pr.PAPER_ID"); + b.append(" and pa.element like '"); + b.append(author); + b.append("' and pr.date like '"); + b.append(date); + b.append("' order by p.InspireId desc"); + if(flag.equals("count")){ + q = _session.createSQLQuery(b.toString()); + } + else{ + q = _session.createSQLQuery(b.toString()).addEntity("p",Paper.class); + } + return q; + } /////////////// now the query constructer for Papers ///////////////// @@ -783,7 +818,7 @@ b.append(" where p.PAPER_ID=ds._paper_PAPER_ID"); b.append(" and (dr.DsReactions like '"); b.append(reaction); - b.append("%'"); + b.append("'"); if(!reaction.endsWith("%")){ List<String> fsp = new ArrayList(); @@ -797,14 +832,14 @@ if(fsp.size()==2 &&n2!=n1){ if(n1!=0&&n2!=1) - {b.append(" or dr.DsReactions like '"+is+" --> "+fsp.get(n1)+" "+fsp.get(n2)+"%'");} + {b.append(" or dr.DsReactions like '"+is+" --> "+fsp.get(n1)+" "+fsp.get(n2)+"'");} } else{ for(int n3=0; n3<fsp.size(); n3++){ if(fsp.size()==3 &&n3!=n2&&n3!=n1 &&n2!=n1){ - b.append(" or dr.DsReactions like '"+is+" --> "+fsp.get(n1)+" "+fsp.get(n2)+" "+fsp.get(n3)+"%'"); + b.append(" or dr.DsReactions like '"+is+" --> "+fsp.get(n1)+" "+fsp.get(n2)+" "+fsp.get(n3)+"'"); } else{ for(int n4=0; n4<fsp.size(); n4++){ @@ -812,7 +847,7 @@ &&n4!=n3&&n4!=n2&&n4!=n1 &&n3!=n2&&n3!=n1 &&n2!=n1){ - b.append(" or dr.DsReactions like '"+is+" --> "+fsp.get(n1)+" "+fsp.get(n2)+" "+fsp.get(n3)+" "+fsp.get(n4)+"%'"); + b.append(" or dr.DsReactions like '"+is+" --> "+fsp.get(n1)+" "+fsp.get(n2)+" "+fsp.get(n3)+" "+fsp.get(n4)+"'"); } else{ for(int n5=0; n5<fsp.size(); n5++){ @@ -821,7 +856,7 @@ &&n4!=n3&&n4!=n2&&n4!=n1 &&n3!=n2&&n3!=n1 &&n2!=n1){ - b.append(" or dr.DsReactions like '"+is+" --> "+fsp.get(n1)+" "+fsp.get(n2)+" "+fsp.get(n3)+" "+fsp.get(n4)+" "+fsp.get(n5)+"%'"); + b.append(" or dr.DsReactions like '"+is+" --> "+fsp.get(n1)+" "+fsp.get(n2)+" "+fsp.get(n3)+" "+fsp.get(n4)+" "+fsp.get(n5)+"'"); } else{ for(int n6=0; n6<fsp.size(); n6++){ @@ -831,7 +866,7 @@ &&n4!=n3&&n4!=n2&&n4!=n1 &&n3!=n2&&n3!=n1 &&n2!=n1){ - b.append(" or dr.DsReactions like '"+is+" --> "+fsp.get(n1)+" "+fsp.get(n2)+" "+fsp.get(n3)+" "+fsp.get(n4)+" "+fsp.get(n5)+" "+fsp.get(n6)+"%'"); + b.append(" or dr.DsReactions like '"+is+" --> "+fsp.get(n1)+" "+fsp.get(n2)+" "+fsp.get(n3)+" "+fsp.get(n4)+" "+fsp.get(n5)+" "+fsp.get(n6)+"'"); } } }
More information about the HepData-svn mailing list |