Как эти ссылки user / userParam связаны с поиском Клиента и Аккаунта? - PullRequest
0 голосов
/ 31 марта 2010

В в следующем примере кода как ссылки user/userParam относятся к поискам Customer и Account и какова связь между Customer и Account?

    // PersistenceManager pm = ...;
    Transaction tx = pm.currentTransaction();
    User user = userService.currentUser();
    List<Account> accounts = new ArrayList<Account>();

    try {
        tx.begin();

        Query query = pm.newQuery("select from Customer " +
                                  "where user == userParam " +
                                  "parameters User userParam");
        List<Customer> customers = (List<Customer>)
        query.execute(user);

        query = pm.newQuery("select from Account " +
                            "where parent-pk == keyParam " +
                            "parameters Key keyParam");
        for (Customer customer : customers) {
            accounts.addAll((List<Account>)
            query.execute(customer.key));
        }

    } finally {
        if (tx.isActive()) {
            tx.rollback();
        }
    }

1 Ответ

0 голосов
/ 31 марта 2010

Первый запрос опрашивает всех клиентов where Customer.user == userParam. Похоже, что клиенты имеют непосредственное отношение к пользователям (предположительно, это класс пользователя GAE).

Второй запрос запрашивает все учетные записи, где родительский ключ учетной записи является ключом клиента. Похоже, что клиенты имеют отношения родитель-ребенок с учетными записями.

Собрав все это, каждый пользователь имеет одного клиента, и каждый клиент может иметь несколько дочерних учетных записей. Учетная запись может иметь только одного родительского клиента.

...