我有一个播放应用程序,我正在构建一个应用程序,它将使用前端的播放框架,但也会有一些“工作节点”,它们将与JMS队列进行通信。
这些工作节点意味着重量轻,因此不会运行完整的游戏框架。
我想在play框架应用程序和worker节点中嵌入相同的模型,以便通过JMS轻松传递对象,但是在play框架中使用ebean我需要让对象扩展{{1}这在工作节点中不起作用,因为它们没有在游戏中运行。
这样做的最佳方式是什么?
答案 0 :(得分:0)
Play的play.db.ebean.Model class只是一个帮助器,它提供了一些有用的方法(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世界中也称为“service”或“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注释中。