2011-09-15 16 views
2

ゲストブックの例をGoogle Developer CodeLabから実行しています。アプリケーションの再起動時にローカルデータストアが保持されない

エントリを追加する場合、それはとても良いこれまで挨拶のリストとlocal datastore

に表示...

私は、アプリケーションを再起動して、しかし、唯一の一部のエントリはまだ存在しますが、は、上記のリンクのように、私のアプリケーションによって管理されているリストとローカルのデータストアの両方から完全に消えています。

Eclipse用のGoogleプラグインを使用してアプリケーションを開発し、テストしています。

誰でも正しい方向に向けることができますか?

答えて

1

--clear-datastore引数を直接またはランチャー経由でdev_appserverに渡している可能性があります。もう1つの可能性は、dev_appserverのローカルデータストアのデフォルトの場所である一時ディレクトリ(リブート時など)を消去するものです。

エンティティだけが消えてしまう原因はわかりません。コードを見ずに言うことはできません。私はまたあなたが「あなたのアプリによって維持されるリスト」という意味を知らない。

0

ありがとうございます。

私は--clear-datastore引数は、一部の値だけでなく、すべての値を消去すると思います。

appengineによって生成されたのローカルデータストアファイルは、再起動するとまだそこにあります。これらのファイルが消去されると、すべての値が消えてしまうと思います。

コードはgoogle codelabの例(問題のリンクから提供)から修正されていません。 私のアプリケーションで管理されているリストは、クエリによって返されたリストだけです。

<% 
    PersistenceManager pm = PMF.get().getPersistenceManager(); 
    String query = "select from " + Greeting.class.getName(); 
    List<Greeting> greetings = (List<Greeting>) pm.newQuery(query).execute(); 
    if (greetings.isEmpty()) { 
%> 
<p>The guestbook has no messages.</p> 
<% 
    } else { 
     for (Greetingg : greetings) { 
      if (g.getAuthor() == null) { 
%> 
<p>An anonymous person wrote:</p> 
<% 
      } else { 
%> 
<p><b><%= g.getAuthor().getNickname() %></b> wrote:</p> 
<% 
      } 
%> 
<blockquote><%= g.getContent() %></blockquote> 
<% 
     } 
    } 
    pm.close(); 
%> 
関連する問題