我有对象User具有以下属性:Id(长),Name(字符串),电子邮件(字符串),激活(bool)。我添加了所有正确的注释。
现在我的问题是,如果只知道名称,我如何使用EntityManager获取特定对象?
我知道我可以使用find方法查找具有特定Id的对象。但是如何使用它来获取名称属性设置为“使用R名称”的对象,例如。
谢谢!
伊凡
答案 0 :(得分:1)
与任何JPA应用程序一样,您使用JPA查询。有关查询和JPQL的介绍,请参阅http://download.oracle.com/javaee/5/tutorial/doc/bnbqw.html#bnbrg。
在您的情况下,代码如下所示:
public List<User> findUsersByName(String name) {
List<User> users = entityManager.createQuery(
"SELECT u FROM User u WHERE u.name = :userName")
.setParameter("userName", name)
.getResultList();
return users;
}
请注意,Google App Engine不支持JPA支持的所有内容:有关详细信息,请参阅http://code.google.com/intl/fr/appengine/docs/java/datastore/jpa/overview.html#Unsupported_Features_of_JPA。