什麼是存儲在id
財產?它是否有一些有意義的價值或者只是用作唯一標識符的隨機唯一號碼?
看來你可以設計不同的數據庫,所以電子郵件地址將是你唯一的標識符。在這種情況下,你將有一個User
表包含以下屬性:
email
(您的唯一標識符),nickname
和level
。
這樣,你就可以使用下面的代碼片段:無論是
Key userEmail; //Get user's email
Entity user = datastore.get(userEmail);
,您仍然可以訪問您的實體,而無需實體的鍵,通過使用query
。這樣你就不會使用實體的鍵來獲取它的實例,而是通過使用給定的屬性值並找到具有該屬性值的匹配實體來獲得所需的實體。
該查詢會看起來像這樣:
String userEmail; //Get user's email
Filter propertyFilter =
new FilterPredicate("email", FilterOperator.EQUAL, userEmail);
Query q = new Query("User").setFilter(propertyFilter);
PreparedQuery pq = datastore.prepare(q);
try {
Entity user = pq.asSingleEntity()
//Same as Entity user = datastore.get(userEmail) mentioned above
} catch (TooManyResultsException e) {
// If more than one result is returned from the Query.
// Add code for dealing the exception here
}
非常感謝,正是我所需要的! –