3

MongoDb と morphia を使用するのはこれが初めてで、データベース全般についてはまったくの初心者です。モルフィアを使用してコードをどのように整理すればよいか疑問に思っています。私はモルフィアのドキュメントDAOに書かれているようなものを使用することを検討していましたが、彼らがそうしているように見える方法では、私が持っているモデルオブジェクトごとに作成する必要があります。私は基本的に Model オブジェクトに自分自身を保存する機能を与えるという遊びの方法論が好きでしたが、ここで何が起こっているのかについて漠然とした考えしか持っていません。それで。これまでのコードは、User モデルのスケルトンに対して次のようになります。DAO

@Entity("user")
public class User extends BasicDAO<User, ObjectId>{
    @Id ObjectId id;

public String firstName;

public String lastName;

public String email;

@Indexed public String username;

public String password;

public User(Mongo mongo, Morphia morphia){
    super(mongo, morphia, "UserDAO");
}
public User(){
    this(DBFactory.getMongo(), DBFactory.getMorphia());
}

public void save(){
    ds.save(this);
}

public static User findByUsername(String uname){
    return DBFactory.getDatastore().find(User.class, "username =", uname).get();
}

public static boolean authenticate(String uname, String pword){
    User user = DBFactory.getDatastore().createQuery(User.class).filter("username", uname).filter("password", pword).get();
    if(user == null)
        return false;
    else
        return true;
}
}

現在StackOverflowException、 をスローしていますが、その理由はわかりませんが、これは達成しようとする合理的なパターンですか?

また、DBFactory は基本的に、シングルトン mongodb 接続を維持するために存在します。

4

2 に答える 2

2

Play 2.0 には MongoDb を操作するためのモジュールがあります。ぜひ試してみて ください https://github.com/vznet/play-mongo-jackson-mapper#readme

于 2012-05-03T14:45:33.203 に答える
1

Play フレームワーク 2.x で Marphia を使い始めました。私の意見では、jackson マッパーよりも洗練されています。この例に従って marphia プラグインをインストールしました: https://github.com/czihong/playMongoDemo

于 2012-06-25T03:51:04.727 に答える