【发布时间】:2012-05-01 15:29:49
【问题描述】:
这是我第一次使用 MongoDb 和 morphia,总的来说我对数据库还很陌生。我想知道我应该如何用 morphia 组织我的代码。我正在考虑使用DAO 就像它在morphia documentation 上所说的那样,但是他们似乎正在这样做,我必须为我拥有的每个模型对象创建一个DAO。我喜欢 play 的方法,即基本上赋予模型对象自救的能力,但我对这里发生的事情只有模糊的概念,所以我不确定如何用 morphia 来实现这一点,或者是否需要这样做所以。到目前为止,我为 User 模型的骨架编写的代码如下所示。
@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 连接而存在。
【问题讨论】:
-
他显然在使用 java 并希望组织他的代码,我认为 scala 示例没有任何帮助
标签: mongodb dao playframework-2.0 morphia