roller-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anil Gangolli (JIRA)" <>
Subject [jira] Commented: (ROL-1756) getMostCommentedWeblogs() doesn't return most commented weblogs unless called with limit = -1
Date Fri, 31 Oct 2008 16:15:19 GMT


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:
>             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 <>
> 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
> 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.

View raw message