玩!框架 - 将 MySQL 和 MongoDB 用于同一应用程序

发布于 2024-11-09 05:49:45 字数 279 浏览 0 评论 0原文

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

例如: 我想要

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

我怎样才能做到这一点?

请告诉我
谢谢

Is it possible to user MySQL Database and MongoDb database for same project using Play! framework?

for example:
I want

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

How can I do that?

Please let me know
Thank you

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

无畏 2024-11-16 05:49:45

是的,这是可能的。只需使用 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

Yes, it is possible. Just use the Morphia plugin for Play. I have done it before. It is quite simple.

For the MongoDB models, just do something like this:

import play.modules.morphia.Model;

@Entity
public class YourMongoModel extends Model {
   ...
}

For the MySQL model, do this:

import play.db.jpa.Model;

@Entity
public class LogMessageX extends Model {
  ...
}

Notice the different imports.

Then the application.conf file should contains something like this:

# For MongoDB
morphia.db.host=localhost
morphia.db.port=27017
morphia.db.name=YourMongoDBName

# for MySQL
db=mysql:user:pwd@database_name
紧拥背影 2024-11-16 05:49:45

在 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 修改字节码并添加所有方法实现 - 非常酷!

On the MySQL entity extend Model and add the JPA annotation (@Entity).

For Mongo you need to use a third-party module such as this one:
http://www.playframework.org/modules/mongo-1.3/home

Example:

@MongoEntity("collectionName")

public class Car extends MongoModel {

public String name;
public String colour;
public int topSpeed;

}

Play's JPA plugin will not modify the Mongo class since it won't have the JPA @Entity annotation.

For anyone out there interested, checkout Play's JPAEnhancer. It uses javaassist to modify the bytecode and add all the method impls - very cool!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文