Java 不使用PersistantManager从GAE数据存储中的实体获取特定值

Java 不使用PersistantManager从GAE数据存储中的实体获取特定值,java,google-app-engine,validation,google-cloud-datastore,Java,Google App Engine,Validation,Google Cloud Datastore,我正在尝试注册一个用户,并允许他使用用户名和密码登录。我的数据存储实体Racer包含名称、用户名、密码、年龄、BikeModel、城市。密钥由应用程序生成 我想验证用户。我使用带有addFilter的查询来获取特定用户的全部详细信息。我对从数据存储中的实体获取特定用户的特定属性感到震惊,比如说,从Racer获取特定用户的密码和用户名 在web上,无论我得到哪个示例,都是使用PersistentManager。我不想用它。除了筛选和排序之外,我找不到任何获取详细信息的查询。请告诉我如何进行 Ser

我正在尝试注册一个用户,并允许他使用用户名和密码登录。我的数据存储实体Racer包含名称、用户名、密码、年龄、BikeModel、城市。密钥由应用程序生成

我想验证用户。我使用带有addFilter的查询来获取特定用户的全部详细信息。我对从数据存储中的实体获取特定用户的特定属性感到震惊,比如说,从Racer获取特定用户的密码和用户名

在web上,无论我得到哪个示例,都是使用PersistentManager。我不想用它。除了筛选和排序之外,我找不到任何获取详细信息的查询。请告诉我如何进行

Servlet:

  public class StoreInDataStore extends HttpServlet {
@SuppressWarnings("deprecation")
public void doGet(HttpServletRequest req, HttpServletResponse resp)
    throws IOException, ServletException {

    //Getting SignUp form values
        String name=req.getParameter("name1");
     String uname=req.getParameter("uname1");
     String pswd=req.getParameter("pswd1");
     String age=req.getParameter("age");
     String city=req.getParameter("city");
     String bike=req.getParameter("bike");

    //Getting login form values
     String lname=req.getParameter("name");
     String lpswd=req.getParameter("pswd");

     //Creating dataStore
     DatastoreService ds = DatastoreServiceFactory.getDatastoreService();

     //Creating entity
     Entity e=new Entity("Racer");

     //Entering details in racer
     e.setProperty("Name", name);
     e.setProperty("UserName", uname);
         e.setProperty("Password", pswd);
     e.setProperty("Age", age);
     e.setProperty("City", city);
     e.setProperty("Bike Model", bike);

    //Storing in DataStore  
        ds.put(e);      

            //Getting entire details

        Query q=new Query("Racer");
    q.setFilter(FilterOperator.EQUAL.of("UserName", uname));/* UserName takes only the currently entered value(uname). Doesnot fetch from dataStore */
    PreparedQuery pq=ds.prepare(q);
    List<Entity> result = ds.prepare(q).asList(FetchOptions.Builder.withDefaults());

    System.out.println(result);     

}
而不是

List<Entity> result = ds.prepare(q).asList(FetchOptions.Builder.withDefaults());

我希望您不要将密码存储为字符串。你应该加密密码。是的,我没有加密。谢谢!这检索到了密码。
Entity result = ds.prepare(q).asSingleEntity();
String password = result.getProperty("Password");