What does this do and why does it require a transaction?
Posted
by S. Palin
on Stack Overflow
See other posts from Stack Overflow
or by S. Palin
Published on 2010-03-31T08:01:14Z
Indexed on
2010/03/31
8:03 UTC
Read the original article
Hit count: 306
What does the following code example do and why does it require a transaction?
// 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();
}
}
© Stack Overflow or respective owner