EBean替代JPA中的find()

时间:2014-06-27 13:01:13

标签: java playframework ebean

我正在关注Play!关于创建博客的框架教程。它们使用JPA而不是EBeans,并使用从play.db.Jpa.Model扩展的find()函数。我正在使用EBeans并使用play.db.ebean.Model扩展。但是,当我使用find()函数时,它表示不存在这样的方法。我做了一些研究,并在这里查看:http://www.playframework.com/documentation/2.0/api/java/play/db/ebean/Model.html

在这里:http://www.playframework.com/documentation/2.0/api/java/play/db/ebean/Model.Finder.html

但没有提到一个简单的find()方法(还有其他如findId(),但我不知道它们如何提供帮助)。我可以在Model类中使用替代方法吗?如果没有,是否还有其他可以轻松使用的课程?

修改

我需要创建的特定部分是User类中的connect()方法。在本教程中,这被描述为:

In the User.java source, add the connect() method:

public static User connect(String email, String password) {
return find("byEmailAndPassword", email, password).first();
}

如果我不能使用find(),我还有什么其他选择。 ebean.find()会工作吗?

1 个答案:

答案 0 :(得分:0)

我知道使用play.db.ebean.Model的find()方法的两种方法。 第一个是这样的:

User user = Ebean.find(User.class, id);

第二种方法是这样的:

//define a Model.finder class in the User model class
 //The first parameter would be the datatype of the id used, which is String in my case
public static Model.Finder<String,User> find = new Model.Finder<String,User>(String.class, User.class);
User user = User.find.byId(id);

由于您的查询基于两个值获取数据,因此您的代码应如下所示:

User.find.where()
            .eq("email", email).eq("password",password)
            .findUnique();