Играть! Framework - Использование MySQL и MongoDB для одного приложения - PullRequest
8 голосов
/ 23 мая 2011

Возможно ли использование базы данных MySQL Database и MongoDb для одного проекта с помощью Play!фреймворк?

например: я хочу

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

Как я могу это сделать?

Пожалуйста, дайте мне знать
Спасибо

Ответы [ 2 ]

5 голосов
/ 23 мая 2011

Да, это возможно. Просто используйте плагин 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
2 голосов
/ 23 мая 2011

В сущности MySQL расширьте Model и добавьте аннотацию JPA (@Entity).

Для Mongo вам потребуется использовать сторонний модуль, такой как этот: http://www.playframework.org/modules/mongo-1.3/home

Пример:

@ MongoEntity ("collectionName")

открытый класс Car extends MongoModel {

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

}

Плагин Play для JPA не будет изменятьКласс Mongo, поскольку у него не будет аннотации JPA @Entity.

Для всех, кто заинтересован, ознакомьтесь с JPAEnhancer от Play.Он использует javaassist для изменения байт-кода и добавления всех методов impls - очень круто!

...