Не уверен, чего вы хотите достичь, но вы можете это сделать. Прежде чем перейти ваш books
список вашего GSP, вы можете написать так:
def myAction() {
List books = Book.list() // Get your book list
User loggedInUser = User.first() // Get your currently logged in user
// First get all the books of current user sorted by the date
List currentUsersBooks = books.findAll { it.author.id == loggedInUser.id }.sort{ it.date }
// Then get other books sorted by date
List otherBooks = books.findAll { it.author.id != loggedInUser.id }.sort{ it.date }
// Now merge all of them (as `List` will maintain insertion order)
// So current user's book will be listed first and then others
List allBooks = currentUsersBooks + otherBooks
[books: allBooks]
}
Теперь измените GSP, чтобы не сортировать снова:
<g:each in="${books}" status="i" var="book">
${book}
</g:each>
Учитывая, класс Book
и User
домен, как это :
class User {
String email
}
class Book {
Strig title
User author
}
Что вы пытаетесь сделать, это не сортировка, а комбинация сортировки (по дате) и приоритета (для входа в пользовательские записи). Причина в том, чтобы сказать, что именно так вы заведете заказ. Не могли бы вы привести пример ввода и вывода. Вы хотите, чтобы все зарегистрированные записи автора, независимо от даты или записи, все еще были отсортированы по дате, но первая запись для определенной даты должна быть зарегистрирована в авторском. –