From: <yo...@us...> - 2010-03-01 15:49:14
|
Revision: 521 http://treebase.svn.sourceforge.net/treebase/?rev=521&view=rev Author: youjun Date: 2010-03-01 15:49:04 +0000 (Mon, 01 Mar 2010) Log Message: ----------- optimize taxonlabeldao queries Modified Paths: -------------- trunk/treebase-core/src/main/java/org/cipres/treebase/dao/taxon/TaxonLabelDAO.java Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/dao/taxon/TaxonLabelDAO.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/dao/taxon/TaxonLabelDAO.java 2010-02-26 16:02:32 UTC (rev 520) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/dao/taxon/TaxonLabelDAO.java 2010-03-01 15:49:04 UTC (rev 521) @@ -409,12 +409,13 @@ return result; } - + // need refactoring later + //all the sql statement should go to same file or class public Collection<Matrix> findMatrices(Taxon t) { Query q = getSession() - .createQuery("select distinct m from Matrix m, TaxonLabel tl where " + - "tl member of m.taxa.taxonLabelList and tl.taxonVariant.taxon = :t"); - q.setParameter("t", t); + .createSQLQuery("select distinct m.* from matrix m join matrixrow using(matrix_id) join taxonlabel " + + "using (taxonlabel_id) join taxonvariant using (taxonvariant_id) where taxon_id = :id").addEntity(Matrix.class); + q.setParameter("id", t.getId()); Collection<Matrix> result = q.list(); return result; } @@ -436,8 +437,11 @@ */ public Collection<PhyloTree> findTrees(Taxon t) { Query q = getSession() - .createQuery("select pt from PhyloTree pt, TaxonLabel tl where " + - "tl member of pt.treeBlock.taxonLabelSet.taxonLabelList and tl.taxonVariant.taxon = :t"); + .createQuery("select distinct pt from PhyloTree pt inner join fetch pt.treeNodes tn where " + + "tn.taxonLabel.taxonVariant.taxon = :t"); + + //("select pt from PhyloTree pt, TaxonLabel tl where " + + // "tl member of pt.treeBlock.taxonLabelSet.taxonLabelList and tl.taxonVariant.taxon = :t"); q.setParameter("t", t); Collection<PhyloTree> result = new HashSet<PhyloTree>(); for (Object o: q.list()) { // Can't select distinct over phylotrees today 20081204 mjd This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yo...@us...> - 2010-03-23 14:51:01
|
Revision: 650 http://treebase.svn.sourceforge.net/treebase/?rev=650&view=rev Author: youjun Date: 2010-03-23 14:50:54 +0000 (Tue, 23 Mar 2010) Log Message: ----------- eliminate repeat results return by findByStudy Modified Paths: -------------- trunk/treebase-core/src/main/java/org/cipres/treebase/dao/taxon/TaxonLabelDAO.java Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/dao/taxon/TaxonLabelDAO.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/dao/taxon/TaxonLabelDAO.java 2010-03-23 13:45:53 UTC (rev 649) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/dao/taxon/TaxonLabelDAO.java 2010-03-23 14:50:54 UTC (rev 650) @@ -81,7 +81,7 @@ // ALERT: the result might not be unique since mesquite allows duplicated taxonlabels // in the same tree. // returnVal = (TaxonLabel) c.uniqueResult(); - + c.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); returnVal = c.list(); } return returnVal; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yo...@us...> - 2010-03-26 20:45:02
|
Revision: 657 http://treebase.svn.sourceforge.net/treebase/?rev=657&view=rev Author: youjun Date: 2010-03-26 20:44:55 +0000 (Fri, 26 Mar 2010) Log Message: ----------- add method to clen orphan value in taxonlabel and taxonlabelset Modified Paths: -------------- trunk/treebase-core/src/main/java/org/cipres/treebase/dao/taxon/TaxonLabelDAO.java Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/dao/taxon/TaxonLabelDAO.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/dao/taxon/TaxonLabelDAO.java 2010-03-24 12:59:35 UTC (rev 656) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/dao/taxon/TaxonLabelDAO.java 2010-03-26 20:44:55 UTC (rev 657) @@ -460,4 +460,24 @@ } return result; } + + public void clean(TaxonLabelSet tSet) { + // TODO Auto-generated method stub + Query q = getSession() + .createQuery("select count(*) from TreeBlock tb where tb.taxonLabelSet = :ts"); + q.setParameter("ts", tSet); + int count=((Integer)q.iterate().next()).intValue(); + + q = getSession() + .createQuery("select count(*) from Matrix m where m.taxa = :ts"); + q.setParameter("ts", tSet); + count += ((Integer)q.iterate().next()).intValue(); + + if(count==0)deletePersist(tSet); + } + + public void clean(List<TaxonLabel> tList) { + // TODO Auto-generated method stub + + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yo...@us...> - 2010-03-27 01:02:57
|
Revision: 658 http://treebase.svn.sourceforge.net/treebase/?rev=658&view=rev Author: youjun Date: 2010-03-27 01:02:51 +0000 (Sat, 27 Mar 2010) Log Message: ----------- finish modification Modified Paths: -------------- trunk/treebase-core/src/main/java/org/cipres/treebase/dao/taxon/TaxonLabelDAO.java Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/dao/taxon/TaxonLabelDAO.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/dao/taxon/TaxonLabelDAO.java 2010-03-26 20:44:55 UTC (rev 657) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/dao/taxon/TaxonLabelDAO.java 2010-03-27 01:02:51 UTC (rev 658) @@ -478,6 +478,18 @@ public void clean(List<TaxonLabel> tList) { // TODO Auto-generated method stub - + for(TaxonLabel tl : tList){ + Query q = getSession() + .createQuery("select count(*) from PhyloTreeNode pn where pn.taxonLabel = :tl"); + q.setParameter("tl", tl); + int count=((Integer)q.iterate().next()).intValue(); + + q = getSession() + .createQuery("select count(*) from MatrixRow mr where mr.taxonLabel = :tl"); + q.setParameter("tl", tl); + count += ((Integer)q.iterate().next()).intValue(); + + if(count==0)deletePersist(tl); + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yo...@us...> - 2010-04-11 14:40:26
|
Revision: 682 http://treebase.svn.sourceforge.net/treebase/?rev=682&view=rev Author: youjun Date: 2010-04-11 14:40:20 +0000 (Sun, 11 Apr 2010) Log Message: ----------- clean sub_taxonlabel table before delete a taxonlabel Modified Paths: -------------- trunk/treebase-core/src/main/java/org/cipres/treebase/dao/taxon/TaxonLabelDAO.java Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/dao/taxon/TaxonLabelDAO.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/dao/taxon/TaxonLabelDAO.java 2010-04-09 03:30:14 UTC (rev 681) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/dao/taxon/TaxonLabelDAO.java 2010-04-11 14:40:20 UTC (rev 682) @@ -489,7 +489,11 @@ q.setParameter("tl", tl); count += ((Long)q.iterate().next()).intValue(); - if(count==0)deletePersist(tl); + if(count==0){ + Submission sub=tl.getSubmission(); + if(sub!=null)sub.removeTaxonLabel(tl); + deletePersist(tl); + } } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |