J'ai encore un autre problème. J'essaie d'utiliser Play Framework 2.5 avec MongoDB en utilisant le plugin Jongo pour Play. Tout d'abord, je ne suis pas tout à fait sûr si je l'ai implémenté correctement. Voici une classe que je voudrais insérer:Jongo avec Play Framework: StackOverflowError en essayant d'insérer
public class User {
@Inject public PlayJongo jongo;
public MongoCollection users() {
return jongo.getCollection("users");
}
@JsonProperty("_id")
public ObjectId id;
public String firebaseID;
public String name;
public User(){}
private User(String firebaseID, String name, ApplicationLifecycle appLifecycle, Environment env, Configuration conf){
this.jongo = new PlayJongo(appLifecycle, env, conf);
this.firebaseID = firebaseID;
this.name = name;);
}
public User createUser(String firebaseID, String name, ApplicationLifecycle appLifecycle, Environment env, Configuration conf){
User user = new User(firebaseID, name, appLifecycle, env, conf);
user.insert();
return user;
}
public void insert() {
users().insert(this);
}
}
Et mon contrôleur d'application fait quelque chose comme ceci:
@Inject public ApplicationLifecycle appLifecycle;
@Inject public Environment env;
@Inject public Configuration conf;
@Inject private User _User;
....
public Result login(...){
...
User user = _User.createUser(...);
...
}
....
Im encore nouveau dans le cadre de jeu et je n'obtenir assez comment le système d'injection doit être utilisé. Donc, si quelqu'un veut m'éclairer, il/elle est libre de le faire :) Si je crée un nouvel utilisateur avec la méthode createUser (et qu'il essaie d'insérer la nouvelle classe), j'obtiens une StackOverflowError apparemment causée par une chaîne infinie de méthode récursive appelant: debug output