【问题标题】:Play! Framework - Using MySQL and MongoDB for same application玩!框架 - 将 MySQL 和 MongoDB 用于同一应用程序
【发布时间】:2011-08-30 19:35:40
【问题描述】:

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

例如: 我想要

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

我该怎么做?

请告诉我
谢谢

【问题讨论】:

    标签: mysql mongodb playframework playframework-1.x hibernate-annotations


    【解决方案1】:

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

    【讨论】:

    • 一个关于@Entity注解的特别说明,你用来注解JPA模型类的那个应该导入为javax.persistence,而用于Morphia模型的那个应该是com.google.code.morphia.annotations.Entity
    • 钟戈呢?我可以使用@MongoEntity 吗?
    【解决方案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 - 非常酷!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-31
      • 2016-08-05
      相关资源
      最近更新 更多