2010-12-09 10 views

Antwort

0

Ich weiß nicht, über JDOQL, aber wenn Sie eine Liste wollen, wo jede Einheit, dh höchste einmal existiert jedes Listenelement eindeutig ist, dann könnte man wie folgt vorgehen:

asume Sie haben einen entit Typ/Modell-Klasse, Wir rufen Type mit den Attributen att1, attr2 auf. Sie möchten eine Liste eindeutiger Elemente basierend auf einem oder mehreren der Attribute, z. B. attr2, erstellen.

können Sie die folgende Methode verwenden, die ich von einer guten Quelle über die Ausgabe angepasst:

 
def unique(seq, idfun=None): 
     ''' A function that returns a list of unique items in a very efficient manner 
     Refer to : http://www.peterbe.com/plog/uniqifiers-benchmark ''' 
     # order preserving 
     if idfun is None: 
       def idfun(x): return x 
     seen = {} 
     result = [] 
     for item in seq: 
       marker = idfun(item) 
       # in old Python versions: 
       # if seen.has_key(marker) 
       # but in new ones: 
       if marker in seen: continue 
       seen[marker] = 1 
       result.append(item) 
     return result 

der Typ eine Liste von einzigartigen Elementen aus dem Datenspeicher-Typ basierend auf attr2 zu bekommen was ich tun konnte etwas wie:

 
list = Type.all() 

unique_list = unique(list,lambda t: t.attr2) 

Hoffe das hilft, weil es die beste Methode für mich bisher war.

Verwandte Themen