1

フロントエンドにプレイフレームワークを使用するアプリケーションを構築中のプレイアプリケーションがありますが、プレイが JMS キューを介して通信する「ワーカーノード」もいくつかあります。

これらのワーカー ノードは軽量であることを意図しているため、フル プレイ フレームワークを実行することはできません。

Play フレームワーク アプリとワーカー ノードの両方に同じモデルを埋め込んで、JMS 経由でオブジェクトを簡単に渡したいのですが、Play フレームワークで ebean を使用するには、オブジェクトを拡張する必要がありますplay.db.ebean.Model。ワーカー ノードはプレイ時に実行されていないためです。

これを行う最善の方法は何ですか?

4

1 に答える 1

0

Playのplay.db.ebean.Model クラスは、いくつかの便利なメソッド (save()、update()、delete()...) を提供する単なるヘルパーです。Ebean の静的メソッドを呼び出すだけです。たとえば、play.db.ebean.Modelクラスの save() メソッドの実装は次のとおりです。

/**
 * Saves (inserts) this entity.
 */
public void save() {
    Ebean.save(this);
}

継承せずにモデル オブジェクトを作成できます。

@Entity
public class User {

   @Id
   private Long id;

   @Column
   private String name;

   // getters and setters
}

しかし、Ebean クラスに依存したくない場合は、静的メソッドを含む他のクラス (Java EE の世界では「サービス」または「DAO」レイヤー) を作成する必要があります。

public class UserDAO {

   public static Finder<Long,User> find = new Finder<Long,User>(Long.class, User.class); 

   public static void save(User aUser) {
      Ebean.save(aUser);
   } 
}

次に、モデル オブジェクトを JAR にパッケージ化し、この依存関係を Play と JMS システムに追加する必要があります。ただし、JMS システムでは、モデル オブジェクトにインポートされる JPA アノテーションに依存関係を追加することを忘れないでください。

于 2012-08-29T16:02:04.443 に答える