DocumentとAuthorの2つのドメインオブジェクトがあるとします。
Class Document {
Author author
String title
}
Class Author {
String lastName
String firstName
String toString() {
return lastName + ", " + firstName
}
}
ビューlist.gspは次のようになります。
<g:sortableColumn property="title" title=... />
<g:sortableCOlumn property="author" title=... />
....
<td>${fieldValue(bean: documentInstance, field: "author"}></td>
<td>${fieldValue(bean: documentInstance, field: "title"}></td>
テーブルに表示される値は意図したとおりに機能します。テーブルの行には、documentInstance.titleの横に作成者が(lastName、firstName)として表示されます。
ただし、作成者列ヘッダーをクリックして並べ替えると、「ドキュメント」はauthor.idで並べ替えられます。
author.idで並べ替える代わりに、author.toString()または "author.lastName、author.firstName"で並べ替える最も便利な方法は何ですか?
可能であれば、.withCriteria {}にフォールバックしないようにします。この機能を必要とする4つの異なる列があり、面倒になるようです。