是否可以使用Play为同一项目的用户MySQL Database
和MongoDb
数据库!框架?
例如: 我想要
@Entity Person to interact with my MySQL database and
@Entity PersonData to interact with my MongoDB database?
我该怎么做?
请告诉我 谢谢
答案 0 :(得分:5)
是的,有可能。只需使用Morphia插件进行播放即可。我以前做过。这很简单。
对于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
答案 1 :(得分:2)
在MySQL实体上扩展Model并添加JPA注释(@Entity)。
对于Mongo,您需要使用第三方模块,例如: http://www.playframework.org/modules/mongo-1.3/home
示例:
@MongoEntity( “集合名”)
公共类Car扩展MongoModel {
public String name;
public String colour;
public int topSpeed;
}
Play的JPA插件不会修改Mongo类,因为它没有JPA @Entity注释。
对于有兴趣的人,请查看Play的JPAE增强器。它使用javaassist来修改字节码并添加所有方法impls - 非常酷!