這是我第一次使用MongoDb和morphia,我對數據庫一般來說很新。我想知道如何用morphia組織我的代碼。我正在研究使用DAO
,就像它在morphia documentation上說的那樣,但是他們似乎在做這件事,我必須爲每個模型對象創建一個DAO
。我喜歡Play的方法,基本上給了Model對象自我保存的能力,但我對這裏的內容只有模糊的概念,所以我不確定如何用morphia來實現這一點,或者如果它甚至是可取的所以。到目前爲止,我所看到的代碼對於用戶模型的骨架來說是這樣的。玩2.0 Morong設計模式與mongodb
@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的例子是任何幫助 – nightograph