You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by "Anil Gangolli (JIRA)" <ji...@apache.org> on 2008/10/31 17:15:19 UTC

[jira] Commented: (ROL-1756) getMostCommentedWeblogs() doesn't return most commented weblogs unless called with limit = -1

    [ https://issues.apache.org/roller/browse/ROL-1756?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14445#action_14445 ] 

Anil Gangolli commented on ROL-1756:
------------------------------------

It is unclear how to address this in a generic way if there is actually a fundamental JPA limitation here.  The limitation stated is that JPA QL doesn't support an order by clause on an aggregated column.   This needs further investigation.   It may be possible to use a subquery.   If there is really no generic way to address this in JPA, a specific site may be able to workaround this by defining an appropriate view and model object, thereby avoiding the need to order  then redefining the query to order on the simple column value.  Not sure how feasible this would be to support generically over multiple database types.

> getMostCommentedWeblogs() doesn't return most commented weblogs unless called with limit = -1
> ---------------------------------------------------------------------------------------------
>
>                 Key: ROL-1756
>                 URL: https://issues.apache.org/roller/browse/ROL-1756
>             Project: Roller
>          Issue Type: Bug
>          Components: Database Access & Data Model
>    Affects Versions: 4.0
>         Environment: Doesn't look environment-specific.  Environment was:  Roller 4.0, MySQL 5.0, unknown Java version.
>            Reporter: Anil Gangolli
>            Assignee: Roller Unassigned
>            Priority: Minor
>
> This issue was originally reported by Guglielmo Carandente <g....@cnmedia.it>
> If you call getMostCommentedWeblogs() with a limit value other than -1, it may not actually return the most commented weblogs.
> This  getMostCommentedWeblogs() method is exposed as part of the site model and the call goes down to WeblogEntryManager.getMostCommentedWeblogEntries().
> The problem results because the query itself does not do any ordering on its result set because (according to a comment near the query definition) of a restriction in JPA QL, yet if you pass a limit value other than -1 the query result set is limited to the specified size.  The ordering is then done by sorting the results in the Java code within the method WeblogEntryManager.getMostCommentedWeblogEntries().  So if you limit of the result set, it may not contain the most commented entries.  You'll just end up sorting the first n entries returned by the query where n is the value of limit passed.
> To work around this bug, you can pass -1 for the length limit  and then limit the number of results you actually display in your velocity template.  
> The performance of this workaround may not be acceptable if you have a large number of blogs on the site.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.