Я не знаю о JDOQL, но если вам нужен список, в котором каждая сущность существует максимально раз, т.е. каждый элемент списка уникален, то вы можете сделать следующее:
Предположим, у вас есть соответствующий класс типа / модели, который мы называем Type, с атрибутами att1, attr2.
Вы хотите иметь список уникальных элементов на основе одного или нескольких атрибутов, скажем, attr2.
Вы можете использовать следующий метод, который я адаптировал из хорошего источника по этому вопросу:
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
чтобы получить список уникальных элементов из типа хранилища данных Тип, основанный на attr2, я мог бы сделать что-то вроде:
list = Type.all()
unique_list = unique(list,lambda t: t.attr2)
Надеюсь, это поможет, потому что это был лучший метод для меня до сих пор.