RE: descending order query
"Louis Moore" <[email protected]> Wed, 11 Aug 2004 19:08:27 -0700
| Newsgroups | gmane.comp.java.keel.user |
|---|---|
| Message-ID | <C5E6D04B7C014946B7CCBFC2AF30DB62C09703@corpmail01.corp.walmart.com> |
Well, it didn't work -- there's no logic in DefaultPersistent to strip
out the ASC or DESC from the fieldname before the call to
getDBFieldName, so I get an exception 'myField DESC' does not exist.
I was able to make it work with the following patch to
org.keel.services.persist.defaultpersist.DefaultPersistent that just
checks for ASC or DESC in the field name and if it's present it's added
back after the DBFieldName is retrieved. (Sorry, the patch is applied to
the 2.1-dev source, haven't updated svc-persist-default, but I looked in
CVS and it shouldn't conflict with any changes since then if you want to
use this):
Index: DefaultPersistent.java
===================================================================
RCS file:
/home/cvs/testeng/keel/svc-persist-default/src/java/org/keel/services/
persist/defaultpersist/DefaultPersistent.java,v
retrieving revision 1.1
diff -u -r1.1 DefaultPersistent.java
--- DefaultPersistent.java 3 Jul 2004 02:31:10 -0000 1.1
+++ DefaultPersistent.java 12 Aug 2004 01:58:18 -0000
@@ -1133,12 +1133,23 @@
myStatement.append(", ");
}
- myStatement.append(
- myMetaData.getDBFieldName((String) i.next()));
+ String fieldName = (String) i.next();
+ int descIndex = fieldName.indexOf("DESC");
+ int ascIndex = fieldName.indexOf("ASC");
+ if(descIndex > 0 ) {
+ fieldName = fieldName.substring(0,
descIndex).trim();
+
myStatement.append(myMetaData.getDBFieldName(fieldName)
);
+ myStatement.append(" DESC");
+ } else if(ascIndex > 0) {
+ fieldName = fieldName.substring(0,
ascIndex).trim();
+
myStatement.append(myMetaData.getDBFieldName(fieldName)
);
+ myStatement.append(" ASC");
+ } else {
+
myStatement.append(myMetaData.getDBFieldName(fieldName)
);
+ }
needComma2 = true;
}
- if (myMetaData.getDatabaseType().getSubSetPosition()
- == DatabaseType.SUBSET_AFTER_ORDER_BY
+ if (myMetaData.getDatabaseType().getSubSetPosition() ==
Databas
eType.SUBSET_AFTER_ORDER_BY
&& (offsetRecord > 0 || maxRecords > 0)) {
myStatement.append(" ");
myStatement.append(makeSubSetStub());
-----Original Message-----
From: user-keelframework.org-admin-rI8AND0JKYOgdSakss0wQjfEH8FBEnyy@public.gmane.org
[mailto:user-keelframework.org-admin-rI8AND0JKYOgdSakss0wQjfEH8FBEnyy@public.gmane.org] On Behalf
Of Shash Chatterjee
Sent: Wednesday, August 11, 2004 6:11 PM
To: user-6VIttnCrOeJXNEnpj1eHPNi2O/[email protected]
Subject: Re: [Keel User] descending order query
> So: query("fieldOne, fieldTwo DESCENDING, fieldThree");
Thank God for Google....use "DESC" instead of "DESCENDING"
_______________________________________________
User mailing list
[email protected]
http://lists.keelframework.org/listinfo.cgi/user-keelframework.org