私のGAEアプリケーションでは、すべての要素がデータベース内に複数存在する場合でも、すべての要素が最大1回存在するリストを返すJDOQLを作成したいと考えています。これどうやってするの?
1 に答える
0
JDOQLについてはわかりませんが、各エンティティが1回だけ存在するリスト、つまり各リスト要素が一意であるリストが必要な場合は、次のようにすることができます。
属性att1、attr2を持つTypeと呼ばれるentitタイプ/モデルクラスがあると仮定します。1つ以上の属性(attr2など)に基づいた一意の要素のリストが必要です。
この問題に関する優れた情報源から私が採用した次の方法を使用できます。
def unique(seq、idfun = None): '''非常に効率的な方法で一意のアイテムのリストを返す関数 参照:http://www.peterbe.com/plog/uniqifiers-benchmark''' #注文保存 idfunがNoneの場合: def idfun(x):xを返します 見た={} 結果=[] seqのアイテムの場合: マーカー=idfun(item) #古いPythonバージョンの場合: #見た場合.has_key(marker) #しかし新しいものでは: マーカーが表示されている場合:続行 見た[マーカー]=1 result.append(item) 結果を返す
attr2に基づいてデータストアタイプTypeから一意の要素のリストを取得するには、次のようにすることができます。
list = Type.all() unique_list = unique(list、lambda t:t.attr2)
これが私にとってこれまでのところ最良の方法だったので、これが役立つことを願っています。
于 2010-12-10T10:44:22.910 に答える