2012-08-29 31 views
1

我有一个玩游戏的应用程序,我正在构建一个应用程序,该应用程序将使用前端的游戏框架,但也会有一些将与游戏进行通信的“工作节点”通过JMS队列。如何与非玩游戏的应用程序共享模型

这些工作节点意味着重量轻,因此不会运行完整的框架。

我想嵌入在两剧中的框架应用程序和工作节点相同的模型,可以很容易地通过物体在JMS但是使用ebean在游戏框架,我需要有对象扩展play.db.ebean.Model赢得在工作节点上工作,因为他们没有在运行。

这样做的最好方法是什么?

回答

0

Play的play.db.ebean.Model class只是一个帮助器,它提供了一些有用的方法(save(),update(),delete()...)。他们只是打电话给Ebean静态方法,例如,保存()的play.db.ebean.Model类的方法实现:

/** 
* 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注释。

+0

此解决方案对我无效。我在一个单独的项目中有我的模型,并且我没有添加“模型”注释。然而,Play仍然抱怨模型无法初始化。 – YGL

相关问题