In my service class, I would like to have something like:
class ClientService { // Authorize // Returns true: Authorization successful // Returns false: Authorization failed public boolean authorize(String id, String password) { //Here I would like to check if an active transaction exists. //If it exists, use that one, else create a new session and start //a new transaction. //For example: Session session = HibernateUtil.getSessionFactory().getCurrentSession(); if(!session.SOMEMETHOD_CHECK_IF_TRANSACTION_IS_ACTIVE) { session.beginTransaction(); } Client client = clientDAO.get(id); if (client != null) { if (client.getPassword().equals(password)) { logger.debug("Authorization successful. ID: " + client.getId() + ", password: " + client.getPassword()); return true; } else { logger.error("Authorization unsuccessful"); return false; } else { logger.debug("Authorization unsuccessful. No client exists with ID: " + id); return false; } } }
Pay attention to the comment after the chapter of the method. I am not very familiar with Hibernate, but I think it would be great if the service methods checked if a transaction exists, use it, otherwise create a new one and close it.
If possible, are there any performance considerations (or others) that I should keep in mind? Or is it some other way to accomplish such things?
Best wishes
kungcc
source share