2

google appengineを使用してコードをクラウドにデプロイした後にこのエラーが発生すると、私はフィルタリングにオブジェクト化インデックスを使用します。ここDatastoreNeedIndexException:一致するインデックスが見つかりません。 Objectifyを使用する

それは以下のエラーがスローされます

ofy().load().type(Session.class).filter("institute",t).order("year").list();//order by year 

次のように客観使用してデータストアからエンティティのリストを呼び出すようにしようとしていた場合、インデックス

@Entity 
public class Session{ 
    @Index private Integer year; 
    @Index private Key<Institute> institute; 
    //some other manipulation goes below 
    } 

を含む私のJavaクラス(エンティティ)ファイルです私のコンソール上に、下の画像は、それを示して、申し訳ありませんあまりにも明確ではない

enter image description here

+0

私は同じ問題に直面してこれがどのように解決されているのが大好きです。 –

答えて

5

datastore-indexes.xmlファイルに推奨インデックス定義を追加する必要があります。このファイルがない場合は、/戦争/ WEB-INF /フォルダに作成する必要があります:あなたは、あなたのアプリが開発サーバ上でテストするときに最もインデックスの定義が自動genereatedできること

<?xml version="1.0" encoding="utf-8"?> 
<datastore-indexes 
    autoGenerate="true"> 

    <datastore-index kind="Session" ancestor="false" source="manual"> 
     <property name="institute" direction="asc"/> 
     <property name="year" direction="asc"/> 
    </datastore-index> 
</datastore-indexes> 

注意を可能なすべてのユースケースをテストすることは容易ではないことがあり、マニュアル定義は簡単なオプションになる場合もあります。

+0

Googleのクラウドコンソールのインデックスをチェックすると、そこに表示されていない、エラーがまだ残っています。 –

+0

「建物」と表示されていませんか?まったく表示されない場合は、このファイルをデプロイしていないことを意味します。展開ログを確認します。 –

+0

私はobjectfy wikiで何を読んでいるのか、システムに応じて数日または数時間かかると言いました。または、インデックスを更新する別の方法があります –

関連する問題