2014-02-02 1 views
1

Мой проект требует, чтобы я поддерживал порядок вставки и извлечения во многих отношениях. По умолчанию groovy сохраняет элементы как набор во многих отношениях. Я хочу сделать это в списке. Я не уверен, как обновить связь, чтобы использовать List вместо Set. Любая помощь будет оценена по достоинству.Как поддерживать порядок в связях со многими графами

class Course{ 
     static belongsTo = Teacher 
     static hasMany = [teacher:Teacher] 

     static mapping = { 
      teacher joinTable : [name: TeacherCourse] 
     } 
    } 

    class Teacher{ 

     static hasMany = [course:Course] 
     static mapping = { 
      course joinTable : [name: TeacherCourse] 
     } 
    } 

save() вызов либо преподаватель, либо курс также вставляет новую строку в таблицу TeacherCourse. Он работает без проблем. В базе данных есть таблицы, являются: - Учитель (PK: Id) курс (PK: Id) TeacherCourse (PK: [Teacher_id, Course_id])

Есть ли способ, я могу поддерживать порядок вставки и извлечения во многих отношениях?

Спасибо ..

Редактировать В контроллере сохранить()

def courseInstance = new Course() 
List <Teacher> teacherList= [] 
teacherList.add(Teacher.findById(65)) 
teacherList.add(Teacher.findById(36)) 
courseInstance.courseUnits = teacherList 
courseInstance.save(flush:true) 

ответ

1

Попробуйте это:

class Course { 
    List teachers 

    static belongsTo = Teacher 
    static hasMany = [teachers:Teacher] 

    static mapping = { 
     teachers joinTable : [name: TeacherCourse] 
    } 
} 

class Teacher { 
    List courses 

    static hasMany = [courses:Course] 
    static mapping = { 
     courses joinTable : [name: TeacherCourse] 
    } 
} 

Reference

+0

вы повторно назвал свойства ассоциации множественными, но блоки отображения все еще используют сингулярные имена. –

+0

Упс - извините. Я обновил свой ответ. – rcgeorge23

+0

Благодарим вас за ответ. Я все еще не могу сохранить порядок вставки. Вот что я делаю в контроллере save() – matuda

 Смежные вопросы

  • Нет связанных вопросов^_^