Répondre

5

Oui, c'est possible. Utilisez simplement le plugin Morphia pour jouer. Je l'ai déjà fait. C'est assez simple.

Pour les modèles MongoDB, faire quelque chose comme ceci:

import play.modules.morphia.Model; 

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

Pour le modèle MySQL, faites ceci:

import play.db.jpa.Model; 

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

Remarquez les différentes importations.

ensuite le fichier application.conf devrait contenir quelque chose comme ceci:

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

# for MySQL 
db=mysql:user:[email protected]_name 
+1

Une note spéciale sur l'annotation @Entity, celui utilisé pour annoter classe modèle JPA devrait être importer comme 'javax.persistence' et celui pour le modèle Morphia devrait être 'com.google.code.morphia.annotations.Entity' –

+0

@green bon point – Ryan

+0

Qu'en est-il de Jongo? puis-je utiliser @MongoEntity avec? – JhovaniC

2

l'entité MySQL extension modèle et ajoutez l'annotation JPA (@Entity).

Pour Mongo vous devez utiliser un module tiers tel que celui-ci: http://www.playframework.org/modules/mongo-1.3/home

Exemple:

@MongoEntity ("collectionName")

public class Car {MongoModel

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

}

Le plugin JPA de Play ne modifiera pas la classe Mongo car il n'aura pas l'annotation JPA @Entity.

Pour ceux qui sont intéressés, consultez JPAEnhancer de Play. Il utilise javaassist pour modifier le bytecode et ajouter toute la méthode impls - très cool!

Questions connexes