From: <yo...@us...> - 2010-03-30 15:54:56
|
Revision: 660 http://treebase.svn.sourceforge.net/treebase/?rev=660&view=rev Author: youjun Date: 2010-03-30 15:54:49 +0000 (Tue, 30 Mar 2010) Log Message: ----------- clean taxonlabels after delete a tree Modified Paths: -------------- trunk/treebase-core/src/main/java/org/cipres/treebase/dao/tree/PhyloTreeDAO.java trunk/treebase-core/src/main/java/org/cipres/treebase/domain/taxon/TaxonLabel.java trunk/treebase-core/src/main/java/org/cipres/treebase/domain/tree/PhyloTree.java Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/dao/tree/PhyloTreeDAO.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/dao/tree/PhyloTreeDAO.java 2010-03-29 19:34:59 UTC (rev 659) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/dao/tree/PhyloTreeDAO.java 2010-03-30 15:54:49 UTC (rev 660) @@ -18,6 +18,7 @@ import org.cipres.treebase.domain.study.SubmissionHome; import org.cipres.treebase.domain.taxon.TaxonLabel; import org.cipres.treebase.domain.taxon.TaxonLabelHome; +import org.cipres.treebase.domain.taxon.TaxonLabelSet; import org.cipres.treebase.domain.taxon.TaxonVariant; import org.cipres.treebase.domain.tree.PhyloTree; import org.cipres.treebase.domain.tree.PhyloTreeHome; @@ -124,7 +125,9 @@ block.removePhyloTree(pTree); if (block.isEmpty()) { + TaxonLabelSet tSet=block.getTaxonLabelSet(); deleteTreeBlock(block); + getTaxonLabelHome().clean(tSet); } } @@ -149,16 +152,18 @@ // getHibernateTemplate().delete(data); } - + + Set<TaxonLabel> tSet=pTree.getAllTaxonLabels(); // Delete by direct JDBC: // * Tree nodes // ** for each tree node, node attribute. // ** (TODO) NodeEdge - PhyloTreeJDBC.deletePhyloTreeNodeSQL(pTree, getSession()); + //PhyloTreeJDBC.deletePhyloTreeNodeSQL(pTree, getSession()); // cascade delete by hibernate: // * tree atrribute getHibernateTemplate().delete(pTree); + getTaxonLabelHome().clean(new ArrayList<TaxonLabel>(tSet)); } /** Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/domain/taxon/TaxonLabel.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/domain/taxon/TaxonLabel.java 2010-03-29 19:34:59 UTC (rev 659) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/domain/taxon/TaxonLabel.java 2010-03-30 15:54:49 UTC (rev 660) @@ -1,6 +1,7 @@ package org.cipres.treebase.domain.taxon; import java.net.URI; +import java.util.Collections; import java.util.List; import java.util.Set; @@ -30,6 +31,7 @@ import org.hibernate.annotations.Fetch; import org.hibernate.annotations.FetchMode; import org.hibernate.annotations.Index; +import org.hibernate.annotations.IndexColumn; /** * TaxonLabel usually associates with one Taxon. If it does not, it usually means the referred @@ -57,7 +59,7 @@ private TaxonVariant mTaxonVariant; private Study mStudy; private Submission mSubmission; - + private Set<TaxonLabelSet> mTaxonLabelSet; /** * Constructor. */ @@ -207,8 +209,28 @@ } return null; } + + /** + * Return the TaxonLabelSet field. + * + * @return List<PhyloTaxonLabel> + */ + @ManyToMany(cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH}) + @JoinTable(name = "TaxonLabelSET_TaxonLabel", joinColumns = {@JoinColumn(name = "TaxonLabel_ID")}, inverseJoinColumns = @JoinColumn(name = "TaxonLabelSet_ID")) + protected Set<TaxonLabelSet> getTaxonLabelSet() { + return mTaxonLabelSet; + } + /** + * Set the TaxonLabelSet field. + */ + protected void setTaxonLabelSet(Set<TaxonLabelSet> pTaxonLabelSet) { + mTaxonLabelSet = pTaxonLabelSet; + } + + + /** * Return the taxon name if it available. */ @Transient Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/domain/tree/PhyloTree.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/domain/tree/PhyloTree.java 2010-03-29 19:34:59 UTC (rev 659) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/domain/tree/PhyloTree.java 2010-03-30 15:54:49 UTC (rev 660) @@ -407,7 +407,7 @@ * @return Set<TreeNode> */ //@OneToMany(mappedBy = "tree", cascade = {CascadeType.MERGE, CascadeType.PERSIST}, fetch = FetchType.LAZY) - @OneToMany(mappedBy = "tree", cascade = {CascadeType.MERGE, CascadeType.PERSIST}) + @OneToMany(mappedBy = "tree", cascade = {CascadeType.ALL}) //@Fetch(FetchMode.SUBSELECT) @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE, region = "treeCache") //@Loader(namedQuery="loadNodes") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |