0

Eclipse を使用して、エンドポイントを使用して (JPA を使用して) アプリ エンジン データストアも使用しているアプリ エンジン ベースのアプリケーションを作成しています。https://developers.google.com/eclipse/docs/endpoints-addentitiesの助けを借りてテスト アプリケーションを作成しまし たが、 うまくいきました。

ここで、システムによって自動的に割り当てられるのではなく、独自のキーを定義するエンティティを作成したいと考えています。私の Notes.java エンティティークラスで何をする必要があるかについて、誰かが私を助けてくれますか? デフォルトでは、Notes.java は次のようになっています。

package com.bfp.mypackage;
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
    public class Note {

      @Id
      private String id;
                  private String emailAddress;
      private String description;
              public Note() {
      }

      public String getId() {
      return id;
      }

      public String getDescription() {
        return description;
      }

      public String getEmailAddress() {
        return emailAddress;
      }

      public void setId(String idIn) {
        this.id = idIn;
      }


      public void setDescription(String description) {
        this.description = description;
      }

      public void setEmailAddress(String emailAddress) {
      this.emailAddress = emailAddress;
      }

             }

このコードをテストすると、提供した値 (emailAddress、dsescription、および ID (そこにタイムスタンプを渡します)) を使用して、開発アプリ サーバーの管理コンソールに作成された Note エンティティが表示されます。管理コンソールでエンティティを表示すると、他に 2 つのフィールドが作成されているのがわかります。1 つの「キー」と他の「書き込み操作」。私が理解している「キー」フィールドは、Javaによって自動的に生成されたものです。とにかく、emailAddressフィールドをキーとして設定できますか? もしそうなら、上記のコードで何を変更する必要がありますか。そうすれば、emailAddress を各エンティティの一意のキーとして使用できます。

4

1 に答える 1

0

電子メール アドレスを「キー」名として設定する必要があります。キーは、自動インクリメントされた長い ID、またはエンティティの種類に固有のユーザーが割り当てたキー名のいずれかによって定義されます。

私は主に JDO と低レベルのアプローチを使用したため、JPA を使用して最も実験的ではありませんがcom.google.appengine.api.datastore.Key、属性の代わりにオブジェクトを直接使用する必要がある場合がありjava.lang.Stringます... 低レベル API メソッドは次のとおりです。 KeyFactory.createKey("EntityName", "whatever@domain.com");

于 2013-06-02T15:24:35.840 に答える