Из того, что я прочитал по вашему вопросу, вы хотите отобразить список имен профиля, а также количество позиций каждого профиля, отсортированных по количеству позиций, desc.
Во-первых, вам нужны модели:
class AlumProfile {
String first_name
String last_name
def hasMany = [positions: AlumPosition]
};
class AlumPosition {
String name // I just added this, no idea what you need in here
def belongsTo=AlumProfile
};
Теперь вы хотите создать список AlumProfiles, отсортированный по количеству позиций. В вашем контроллере вам нужно:
def allByPositionCount = {
def profiles = AlumProfile.list().sort( [compare: { a,b -> a.positions.size().compareTo( b.positions.size() ) }] as Comparator );
[ profiles: profiles ]
}
При этом файл allByPositionCount.gsp будет отображаться с моделью, содержащей элемент «profile», представляющий собой список профилей в правильном порядке, что-то вроде:
<g:each in="${profiles}" var="profile" >
${profile.first_name} ${profile.last_name} has ${profiles.positions.size()} positions
</g:each>
должен сделать то, что вы хотите.