Play!框架 - 如何在同一个应用程序中使用MySQL和MongoDB

8

使用Play!框架,可以同时使用MySQL数据库MongoDb数据库吗?

例如:

我希望在同一个项目中同时使用它们。

@Entity Person to interact with my MySQL database and  
@Entity PersonData to interact with my MongoDB database?  

我该怎么做呢?

请告诉我
谢谢

2个回答

5
是的,这是可能的。只需要使用Play的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
关于@Entity注释的特别说明,你用来注释JPA模型类的应该导入为“javax.persistence”,而用于Morphia模型的应该是“com.google.code.morphia.annotations.Entity”。 - Gelin Luo
Jongo怎么样?我能在其中使用@MongoEntity吗? - JhovaniC

2
在MySQL实体模型上添加JPA注解(@Entity)进行扩展。
对于Mongo,您需要使用第三方模块,例如这个: http://www.playframework.org/modules/mongo-1.3/home 示例:
@MongoEntity("collectionName") public class Car extends MongoModel {
public String name;
public String colour;
public int topSpeed;

Play的JPA插件不会修改Mongo类,因为它没有JPA @Entity注释。

对于任何感兴趣的人,请检查Play的JPAEnhancer。它使用Javaassist修改字节码并添加所有方法实现-非常酷!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接