0
在我的GAE應用程序中,我想創建一個JDOQL,它返回一個List,其中每個元素至多存在一次,即使在數據庫中還有更多。我怎樣才能做到這一點?使用JDOQL唯一結果集的查詢
在我的GAE應用程序中,我想創建一個JDOQL,它返回一個List,其中每個元素至多存在一次,即使在數據庫中還有更多。我怎樣才能做到這一點?使用JDOQL唯一結果集的查詢
我不知道關於JDOQL,但如果你想在那裏每一個實體存在的最大的一次,即每個列表元素是唯一的一個列表,那麼你可以做到以下幾點:
Asume你有一個entit類型/型號類我們稱之爲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)
希望這可以幫助,因爲它一直是我迄今爲止最好的方法。