, ( ):
SQL
, Postgres, mysql, , . , , , - : !
ORDER BY (ID=10, ID=2, ID=56, ID=40) DESC
SQL- Grails, ,
Groovy ( )
def ids = [10, 2, 56, 40];
def events = Event.withCriteria {
'in'('id', ids)
fetchMode("someRelation", FetchMode.JOIN)
setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY)
}
def indexToIdArray = [];
ids.eachWithIndex{ num, idx -> indexToIdArray[$num] = $idx }
def sortedEvents = [];
events.each { ev -> sortedEvents[indexToIdArray[ev.id]] = ev }
, O (n), .
, , .
. , groovy.
, . -, , ( ).
, ,...
, ( /):
, .