2012-04-21 5 views
4

나는 Car와 Garage의 2 가지 수업을 가지고 있습니다. 그들에는 m : n 관계가있어, 그래서 1 대의 차는 많은 차고가 있고 1 대의 차고는 많은 차가있다.Grails GORM 다 대다 관계와 연결 가능 항목 삭제

내 데이터베이스에 관계가 저장되는 garage_has_car 테이블이 있습니다. 내가 차고에 자동차 컬렉션을 지우고 저장하면 내가 차고

static belongsTo = [ Garage ] 

에 차에 설정 belongsTo를 구성한의 garage_has_car 테이블에서 해당 항목이 삭제됩니다.

차고에서 차고 컬렉션을 지우고 저장하면 garage_has_car 테이블의 해당 항목이 삭제되지 않습니다!

이 동작을 어떻게 수행 할 수 있습니까?

UPDATE 1 (추가 관계를 정의) :

주차장에서의 관계는 다음과 같습니다

는 자동차에서 그것이 내가 IRC에서이 질문을했습니다

static belongsTo = [ Garage ] 
garages column:'car_id',joinTable:'garage_has_cars' 

입니다

cars column:'deskriptor_id',joinTable:'garage_has_cars' 

누군가 대답했다 :

(...) grails many to many 관계는 항상 한 방향으로 만 계승됩니다. grails에서 many-to-many 관계는 hibernate에서 어떻게 매핑되는지에 따라 엄청나게 비효율적이다. 그들을 사용하지 마십시오. 1 차와 1 차고가있는 Join 클래스 도메인 객체 CarGarage를 만듭니다. 자동차 및 차고 클래스의 속성을 일시적으로 만들고 자동차 및 차고 클래스에 메소드를 추가하고 추가하여 관계 유지를 위해 join 클래스를 사용합니다. 이 같은 문제로 누군가를 도울 수 있기 때문에 Grails: Many-to-Many without hasMany/belongsTo - instead using native 3NF - Searching full text

나는이 견적을 게시 : 당신은 또한 몇 가지 정보가이 프레젠테이션 http://burtbeckwith.com/blog/files/169/gorm%20grails%20meetup%20presentation.pdf에서 찾을 수 있습니다 그리고 그것의주의 사항이있어 가입 클래스 여기 에서 버전 관리를 비활성화 할 수있어 원하는 나는 가지고있다. 이러한 변경 사항을 구현할 시간이 있으면이 질문을 업데이트 할 것입니다.

+0

여기에 귀하의 many2many 관계 (관계 만)를 게시 할 수 있습니까? – Nurlan

+1

예, 발견 한대로, 당신은 many-to-many 관계를 관리하기위한 associate 객체를 원합니다. 비효율적 인 문제를 해결하는 것만이 아니며, 항상 한쪽이나 다른쪽에 더 많은 정보가 필요하다는 것을 알았습니다 (예 : 차고에 차를 추가 한 날짜). "테이블과 같은"이름 대신에 앱에 맞는 이름을 선택하고 싶을 수도 있습니다. "GarageSlot"일 수도 있습니다. "CarGarage"를 사용하면 혼란 스러울 수 있습니다. –

답변

0

답변이없는 질문에서 대답하기 만하면됩니다.

(...) grails 많은 관계가 항상 많은 것입니다. 방향입니다. grails의 many-to-many 관계는 최대 절전 모드에서 매핑되는 방법과 함께 비효율적 인 입니다. 그들을 사용하지 마십시오. 1 차와 1 차고가있는 Join 클래스 도메인 객체 CarGarage를 만듭니다. 자동차 및 차고 클래스의 속성을 일시적으로 만들고 메소드를 추가하고 관계를 유지하기 위해 joinclass를 사용하는 차고 클래스에 메소드를 추가하고 추가하십시오. 당신은 또한 여기에 몇 가지 정보를이 프리젠 테이션 http://burtbeckwith.com/blog/files/169/gorm%20grails%20meetup%20presentation.pdf 과 현재의 노트에서 찾을 수 있어요 조인 클래스에 버전을 비활성화하려면 : Grails의 : 다 대다 hasMany의/belongsTo를하지 않고 - 대신 기본 3NF를 사용하여 - 전체 텍스트 검색

관련 문제