I Have Such a domain class in my project:
class Log {
Integer entityId
Integer tableId
Date logDt
}
I would like to select all the records by a certain tableId, and sort them by entityId and logDt desc. Sorting by one filed works fine:
Log.findAllByTableId(tableID, [sort: 'entityId', order: 'desc'])
but when I try to sort by both fields:
Log.findAllByTableId(tableID, [sort: 'entityId,logDt', order: 'desc'])
I get an error that there is no such field 'entityId,logDt'
at this table.
What is the right syntax to do so?
Thanks.
Using the dynamic finders, you just can sort by one property.
If you would like to sort by multiple properties you could use a criteria or a HQL query.
Here is an example using a criteria:
def logs = Log.createCriteria().list {
eq('tableId', tableID)
order('entityId', 'desc')
order('logDt', 'desc')
}
Try this,
Log.findAllByTableId(tableID, [sort: ['entityId': 'desc', 'logDt': 'desc']])
It works, with Grails 3.1.9 onwards.
NB: Probably, works with some previous versions too, never tried though.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With