지난 며칠 동안 나는 이것을 달성하는 방법을 알아 내려고 노력해 왔으며 나의 작은 지식으로는 아무런 방법이 없습니다.다 대 다 관계가있는 세 엔티티 그룹화
나는 세 가지 엔티티 목록 < < 설계 한 - >> 항목 < <을 - >> 핵심 데이터 모델 디자이너에 보관할 것. 그들 각각은 "이름"이라고 불리는 하나의 속성만을 가지고 있습니다.
목표는 목록을 선택한 다음 목록에서 스토어별로 그룹화 된 모든 항목을 표시하는 것입니다.
이// Set entity.
entity = [NSEntityDescription entityForName:@"Item" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
// Set object filters.
predicate = [NSPredicate predicateWithFormat:@"ANY list.name == %@", self.list.name];
[fetchRequest setPredicate:predicate];
// Set FRC
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"store.name" cacheName:nil];
오류 :
'Invalid to many relationship in setPropertiesToFetch: (store.name)'
에 의해 직접 행을 채우는 너무 이런 식으로 (방법을 아직 몰라요) :
내가 사용하려고했습니다
// Set entity.
entity = [NSEntityDescription entityForName:@"Store" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
// Set object filters.
predicate = [NSPredicate predicateWithFormat:@"SUBQUERY(item.list, $x, $x.name == %@)[email protected] > 0", self.list.name];
[fetchRequest setPredicate:predicate];
// Set FRC
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"name" cacheName:nil];
오류 :
'Only allowed one toMany/manyToMany relationship in subquery expression collection (SUBQUERY(item.list, $x, $x.name == "List02"))'
또한 가져온 속성 및 다른 방법으로는 아무데도 도달하지 못했습니다.
아이디어가 있으십니까?
감사합니다. Pedro.
각 항목이 여러 저장소에있을 수 있고 가져 오기 요청이 동일한 항목을 여러 번 반환 할 수 없기 때문에 저장소별로 그룹화 할 수 없습니다. –
데이터베이스에 다 대다 관계를 가져서는 안됩니다. 상호 참조 테이블과 다 대다 관계를 제거해야합니다. – danypata
답변 해 주셔서 감사합니다. 크리스틴 - 클리어. Dany : 핵심 데이터가 장면 내에서 작동하는 방식과 상호 참조 테이블이 맞지 않습니까? 그렇다면 결과는 동일해야합니다. 맞습니까? – Pedro