是否可以使用 Play 为同一项目的用户MySQL Database
和数据库!MongoDb
框架?
例如:我想要
@Entity Person to interact with my MySQL database and
@Entity PersonData to interact with my MongoDB database?
我怎样才能做到这一点?
请告诉我
谢谢
是否可以使用 Play 为同一项目的用户MySQL Database
和数据库!MongoDb
框架?
例如:我想要
@Entity Person to interact with my MySQL database and
@Entity PersonData to interact with my MongoDB database?
我怎样才能做到这一点?
请告诉我
谢谢
对的,这是可能的。只需将 Morphia 插件用于 Play。我以前做过。这很简单。
对于 MongoDB 模型,只需执行以下操作:
import play.modules.morphia.Model;
@Entity
public class YourMongoModel extends Model {
...
}
对于 MySQL 模型,请执行以下操作:
import play.db.jpa.Model;
@Entity
public class LogMessageX extends Model {
...
}
注意不同的导入。
然后 application.conf 文件应该包含如下内容:
# For MongoDB
morphia.db.host=localhost
morphia.db.port=27017
morphia.db.name=YourMongoDBName
# for MySQL
db=mysql:user:pwd@database_name
在 MySQL 实体上扩展 Model 并添加 JPA 注释 (@Entity)。
对于 Mongo,您需要使用第三方模块,例如: http ://www.playframework.org/modules/mongo-1.3/home
例子:
@MongoEntity("collectionName")
公共类 Car 扩展 MongoModel {
public String name;
public String colour;
public int topSpeed;
}
Play 的 JPA 插件不会修改 Mongo 类,因为它没有 JPA @Entity 注释。
对于任何感兴趣的人,请查看 Play 的 JPAEnhancer。它使用 javaassist 修改字节码并添加所有方法 impls - 非常酷!