تحديد الترتيب الافتراضي النظام في الكؤوس/GORM

StackOverflow https://stackoverflow.com/questions/520187

  •  21-08-2019
  •  | 
  •  

سؤال

دعونا نقول لدي 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:

نصائح أخرى

وتبين كيفية القيام بذلك على الصفحة 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"]
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top