2012-06-21 3 views
0

가능한 중복 : 나는 belongsTo를 협회 2 개 도메인 클래스를 가지고
Grails/GORM: The meaning of belongsTo in 1:N relationshipsGrails는

 class Teacher { 
     String name 
     String department 
     } 

     class Address { 
     String line1 
     String line2 

     // Teacher teacher //this line is commented. 
     static belongsTo = [teacher: Teacher] 

     static constraints = { 
     } 
    } 
  1. 내가 얻는 이점은 무엇 때 주소 : belongsTo를 교사
  2. 내가 belongsTo 절은 하나 개의 클래스에서 양방향 접근을하는 것입니다 가지고 주소 클래스에서 교사 객체 참조 (교사 클래스의 주석 라인을 참조)

답변

1

목표 선언해야 할 다른쪽에. Documentation of belongsTo을 참조하십시오.

교사가 주석을다는 두 번째 선언을 생략 할 수 있습니다.

그래서 다음과 같이한다 : 여기

class Teacher { 
    String name 
    String department 

    Set<Address> adresses = new HashSet<Address>() // here you could set a specific list/set data holder 
    static hasMany = [adresses:Address] 
    } 

    class Address { 
    String line1 
    String line2 

    static belongsTo = [teacher: Teacher] 

    static constraints = { 
    } 
} 

당신이 두 클래스가 서로에 대한 액세스 권한이 일대 associaton을 보유하고 있습니다. belongsTo 절을 제거하면 adress 개체에서 교사 개체에 액세스 할 수 없습니다. 이것은 데이터베이스에도 반영됩니다.

+0

만약 그것의 일대일 연관 – Hussy

+0

그럼 간단히 말해서 [hasOne] (http://grails.org/doc/latest/ref/Domain%20Classes/hasOne.html) – matcauthon

+0

나는 생각하지 않는다. 관계를 양방향으로 만드십시오 - belongsTo가없는 양방향 관계를 가질 수 없습니다! 만약 내가 Address라는 Teacher 타입의 변수를 선언하고 belongsTo를 전혀 사용하지 않는다면 어떨까요? –

1

belongsTo를의 목표는 관계 양방향을하지 않는이 - 목표는 모든 것을 설명이 documentation를 읽고 저장하고 작업을

을 삭제 소유권을 협회의 어느 쪽 지정하고 계단식의 동작을 정의하는 것입니다 당신은 belongsTo에 대해 알아야합니다.