@Override @DB public NetworkVO persist(NetworkVO network, boolean gc, Map<String, String> serviceProviderMap) { Transaction txn = Transaction.currentTxn(); txn.start(); // 1) create network NetworkVO newNetwork = super.persist(network); // 2) add account to the network addAccountToNetwork(network.getId(), network.getAccountId(), true); // 3) add network to gc monitor table NetworkOpVO op = new NetworkOpVO(network.getId(), gc); _opDao.persist(op); // 4) add services/providers for the network persistNetworkServiceProviders(newNetwork.getId(), serviceProviderMap); txn.commit(); return newNetwork; }