From: <rv...@us...> - 2011-05-12 13:38:52
|
Revision: 847 http://treebase.svn.sourceforge.net/treebase/?rev=847&view=rev Author: rvos Date: 2011-05-12 13:38:45 +0000 (Thu, 12 May 2011) Log Message: ----------- Refined to make sure it can deal with queries where begin year and end year are identical Modified Paths: -------------- trunk/treebase-core/src/main/java/org/cipres/treebase/dao/study/StudyDAO.java Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/dao/study/StudyDAO.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/dao/study/StudyDAO.java 2011-05-12 12:38:13 UTC (rev 846) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/dao/study/StudyDAO.java 2011-05-12 13:38:45 UTC (rev 847) @@ -402,16 +402,19 @@ } public Collection<Study> findByPublicationDateRange(Date from, Date until) { - Query q = getSession().createQuery( - "from Citation where publishyear between :begin and :end"); - q.setInteger("begin", from.getYear()); - q.setInteger("end", until.getYear()); - Collection<Citation> citations = q.list(); - Set<Study> results = new HashSet<Study>(); - for ( Citation citation : citations ) { - results.add(citation.getStudy()); + int begin = from.getYear(); + int end = until.getYear(); + if ( begin != end ) { + Query q = getSession().createQuery("select study from Citation where publishyear between :begin and :end"); + q.setInteger("begin", begin); + q.setInteger("end", end); + return q.list(); } - return results; + else { + Query q = getSession().createQuery("select study from Citation where publishyear = :begin"); + q.setInteger("begin",begin); + return q.list(); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |