تحديد الترتيب الافتراضي النظام في الكؤوس/GORM
سؤال
دعونا نقول لدي definied كائن مستخدم باستخدام GORM.كل مستخدم يمكن أن يكون صفر أو أكثر تسجيل الدخول:ق.كل تسجيل الدخول زمني.عند استرداد المستخدم.تسجيلات أريد الدخول إلى فرز على أساس قيمة تسجيل الدخول.تاريخ.ما هو الصحيح الكؤوس طريقة لتحقيق هذا ؟
على سبيل المثال:أريد البرمجية التالية إلى قائمة المستخدم تسجيل الدخول في ترتيب تصاعدي.
<g:each var="login" in="${user.logins}">
<tr>
<td>${login.date}</td>
</tr>
</g:each>
هذه هي المشار إليها فصول:
class User {
...
def hasMany = [logins: Login]
static fetchMode = [logins: "eager"]
}
class Login {
Date date
...
def belongsTo = [User]
}
أنا على التوالي الكؤوس 1.0.4 وهو أحدث إصدار مستقر.
المحلول 3
التعامل مع ترتيب الفرز الافتراضي في الكؤوس/GORM يبدو أنه قد تم جذريا مبسطة في الكؤوس 1.1:
- الكؤوس 1.1 ملاحظات الإصدار (البحث عن "ترتيب الفرز الافتراضي")
نصائح أخرى
وتبين كيفية القيام بذلك على الصفحة GORM في الدليل المرجعي (القسم 5). بت تريده هو بالقرب من الجزء السفلي من هذه الوثيقة هو المقطع الذي تريده. لديهم اثنين من أمثلة بسيطة:
class Airport {
…
static mapping = {
sort "name"
}
}
class Airport {
…
static mapping = {
sort name:"desc"
}
}
وكما أن لديها مثال الفرز على الجمعية:
class Airport {
…
static hasMany = [flights:Flight]
static mapping = {
flights sort:'number'
}
}
وجعل مجرد الدخول الدرجة تنفيذ واجهة المقارنة:
class Login implements Comparable {
// ...
Date date
public int compareTo(def other) {
return date <=> other?.date // <=> is the compareTo operator in groovy
}
}
وتعلن العلاقة لتكون SortedSet:
class User {
...
def hasMany = [logins: Login]
SortedSet logins
static fetchMode = [logins: "eager"]
}