8

是否可以使用 Play 为同一项目的用户MySQL Database和数据库!MongoDb框架?

例如:我想要

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

我怎样才能做到这一点?

请告诉我
谢谢

4

2 回答 2

5

对的,这是可能的。只需将 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
于 2011-05-23T15:05:45.887 回答
2

在 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 - 非常酷!

于 2011-05-23T01:18:04.290 回答