How to create a db neutral orderby returned data in active-objects

Andy Brook [Plugin People]
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
January 21, 2012

I have an AO entity with lifecycle info like 'created' (Timestamp type) and a data entity that extends it. I want to use AO to retrieve the data entities, ordered with most recent dates first. If I try the following:

Query query=Query.select().order("created");
MyObj[] = aoService.find(MyObj.class,query);

I get: ERROR: column "created" does not exist Position: 58 at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:251)

But, the table does have a Timestamp column, A bug possibly? Even if this worked, Im curious how I would indicate 'ascending' or 'descending' orders.

Anyone got an example to hand?

Rgds

2 answers

1 accepted

0 votes
Answer accepted
Samuel Le Berrigaud
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
January 21, 2012

It looks like a case sensitivity issue to me. Some database are case sensitive, Postgres being one of them. And all table and column names converted by the AO plugin are upper case.

See the table names and column names conventions for more information.

In your case I think simply changing your code to the following should work.

Query.select().order("CREATED")

Andy Brook [Plugin People]
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
January 21, 2012

Hi Sam, I should have thought of that, upper casing worked. If AO coverts all columns to upper case, it would be a wrinkle removed if column operations shouldnt be case sensitive?

0 votes
tier-0 grump
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
January 21, 2012

Andy, you should be able to do

Query.select().order("created asc") 
Query.select().order("created desc")

Try it, if that's not working then there may be a bug

Andy Brook [Plugin People]
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
January 21, 2012

Hi James,

Thanks for that, looks like the fundamental problem is the inheritance, logged as https://studio.atlassian.com/browse/AO-295

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events