2

こんにちは、クエリで注文しようとすると、この DatastoreNeedIndexException が発生します。

コードは次のとおりです。

@PersistenceCapable
public class Gaze {

@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;

@Persistent
Blob image;

@Persistent
Long time;

@Persistent
Long TTL;

@Persistent
String town;

@Persistent
String countryCd;

@Persistent
String tag;

クエリ:

Query query = pm.newQuery(Gaze.class, "tag == tagParam");
    query.declareParameters("String tagParam");
    //query.setRange(0,10);
    query.setOrdering("time desc");
    List<Gaze> results = (List<Gaze>) query.execute(tag);

そしてインデックス:

<datastore-indexes autoGenerate="false">
<datastore-index kind="Gaze" ancestor="false">
<property name="tag"  direction="asc" />
<property name="time" direction="desc"/>
<property name="TTL"  direction="desc" />
</datastore-index>

どこを見たらいいのかわからない。順序を削除すると、オブジェクトが主キーで順序付けされます

4

2 に答える 2

2

インデックスが作成されていますか? 管理コンソールで確認できます。場合によっては時間がかかります...

于 2011-04-23T16:18:18.663 に答える
0

リストしたインデックスにはTTL、クエリが使用しないフィールドが含まれています。インデックスは、必要な正確なフィールドがある場合にのみ使用できます。tagandのみにインデックスを作成する必要がありますtime desc

于 2011-04-24T01:43:13.693 に答える