1

我有一个播放应用程序,我正在构建一个应用程序,该应用程序将在前端使用播放框架,但也会有一些“工作节点”,播放将通过 JMS 队列进行通信。

这些工作节点是轻量级的,因此不会运行完整的框架。

我想在播放框架应用程序和工作节点中嵌入相同的模型,以便通过 JMS 轻松传递对象但是要在播放框架中使用 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 回答