2013-04-25 5 views
0

나는 Java/JavaEE 배경을 가지고 있으며 최근 Grails 프로젝트를 시작했다.Grails 단방향 다 대다

도메인 모델을 작성할 때 단방향 다 대다가 필요합니다. 나는 그것이 Jpa/Hibernate에 있어야하는 방법을 안다. grails에서 빠른 검색을했고 Grails에서 지원되지 않는 것 같고 어떤 사람들은 매핑 클래스 사용을 제안합니다 (어떻게해야하는지 예제가 없습니다).

누구나 저에게이 요구 사항에 대한 예를 제공 할 수 있습니까? 예를 들어

: 코드 위

class Teacher { 
static hasMany: [students: Student] 
} 

class Student { 
    static belongsTo: Teacher 
    static hasMany: [teachers: Teacher] 
} 

은 다 대다 Grails의 문서에서 양방향을 사용하여 수행됩니다. 단방향 many-to-many 코드와 같은 코드는 무엇입니까?

교사 클래스의 교사 참조가있는 학생 만 학생 목록을 가져올 수 없습니다.

감사합니다.

+0

측면? 조인 테이블을 사용합니까? 그런 식으로 학생 내에서 선생님 컬렉션을 가질 수 있으며 선생님은 많은 학생들과 연관 될 수 있습니다. –

+0

아마도 뭔가를 놓친 것 같습니다. 당신은 하나에 대해 많은 것을 설명하지 않습니까? 원하는 테이블 구조를 게시 할 수 있습니까? –

+0

sudhir에게 코드가 아래 Anantha 코드와 비슷하다는 것을 의미합니까? 교사쪽에 hasMany가없고 join 테이블쪽에 belongsTo가 있습니까? – ttt

답변

1

나는 교사, 학생, 중급 학급과 같은 세 가지 수업을 사용했습니다. 우리는 교사 기준에 액세스 할 수 있습니다. 선생님 쪽에서는 액세스 할 수 없습니다. 부트 스트랩에서

class Teacher { 
String name 

} 

class Student { 
    String name 
    static hasMany  = [teachers:StuTeach] 

} 

class StuTeach { 

    static constraints = { 
    } 
    static belongsTo = [teacher:Teacher,student:Student] 
} 

,

 def t1=new Teacher(name:"t1") 
     t1.save(flush:true) 
     def t2=new Teacher(name:"t2") 
     t2.save(flush:true) 

     def stu=new Student(name:"s1") 
     stu.save(flush:true) 

     def stuteach1=new StuTeach() 
     stuteach1.student=stu 
     stuteach1.teacher=t1 
     stuteach1.save(flush:true) 

     def stuteach2=new StuTeach() 
     stuteach2.student=stu 
     stuteach2.teacher=t2 
     stuteach2.save(flush:true) 

     stu.addToTeachers(stuteach1) 
     stu.addToTeachers(stuteach2) 

     stu.save(flush:true) 
     println stu.teachers.teacher 
관련 문제