2010-08-27 8 views
1

Peut-être il y a une solution simple à cela, mais je me fais mal de tête, je suis assez nouveau avec tout ce genre de choses de base de données:Certains problèmes de tri (débutant de base de données)

J'ai une classe BankAccount/entité avec un attribut "index", utilisé pour le tri, et une relation "transactions" vers plusieurs à la classe/entité Transaction. Cette entité de transaction a un attribut "date" que je veux utiliser pour le tri.

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
[fetchRequest setEntity:[NSEntityDescription entityForName:@"BankAccount" inManagedObjectContext:self.managedObjectContext]]; 
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"index" ascending:YES]; 
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]]; 

Cela fonctionne bien et me livre les objets BankAccount bien classés par "index". Mais, chaque objet BankAccount contient un "transactions" NSSet qui n'est, bien sûr, pas trié du tout. Comment puis-je trier ces transactions par l'attribut "date", et est-ce possible dans la même requête d'extraction?

Merci beaucoup à l'avance.

Répondre

1

Pour ce faire, vous devez récupérer les transactions commandées.

Qu'est-ce que vous auriez besoin est:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
[fetchRequest setEntity:[NSEntityDescription entityForName:@"Transaction" 
            inManagedObjectContext:self.managedObjectContext]]; 
[fetchRequest setPropertiesToFetch :[NSArray arrayWithObjects:@"date", @"bankAccount", nil]]; 
[fetchRequest setSortDescriptors:[NSArray arrayWithObjects: 
            [[[NSSortDescriptor alloc] initWithKey:@"date" 
                   ascending:YES 
                   selector:@selector(compare:)] autorelease], 
            [[[NSSortDescriptor alloc] initWithKey:@"bankAccount.index" 
                   ascending:YES] autorelease], 
            nil]]; 

Je suppose que Transaction est le nom de l'entité pour les transactions, et que bankAccount est la relation de l'entité Transaction-BankAccount.

+0

Où es-tu en mesure d'obtenir le résultat attendu? – vfn

Questions connexes