Subversion Repositories bacoAlunos

Rev

Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.utl.ist.berserk.storage.hibernate;

import pt.utl.ist.berserk.storage.ITransactionBroker;
import pt.utl.ist.berserk.storage.exceptions.StorageException;
import pt.utl.ist.berserk.storage.empty.TransactionBrokerEmpty;

import java.util.List;

import jomm.dao.impl.AbstractDao;
import jomm.dao.utils.HibernateUtils;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.LockMode;

/**
 * Creates an hibernate transaction
 *
 * @author Jorge Machado
 *
 *
 * Created at 19/Out/2003 , 14:56:47
 *
 */

public class HibernateTransactionBroker implements ITransactionBroker
{
    private static HibernateTransactionBroker instance;

    private HibernateTransactionBroker()
        {
    }

    public static HibernateTransactionBroker getInstance()
    {
        if(instance == null)
            instance = new HibernateTransactionBroker();
        return instance;
    }

    public void beginTransaction() throws StorageException
    {
        HibernateUtils.getCurrentSession().beginTransaction();
    }
        public void commitTransaction() throws StorageException
        {
        HibernateUtils.getCurrentSession().getTransaction().commit();
    }
        public void abortTransaction() throws StorageException
        {
        HibernateUtils.getCurrentSession().getTransaction().rollback();
    }
        public void lockRead(5+0%2Fdocs%2Fapi+List">List list) throws StorageException
        {
        for(5+0%2Fdocs%2Fapi+Object">Object obj: list)
        {
            lockRead(obj);
        }
    }
        public void lockRead(5+0%2Fdocs%2Fapi+Object">Object obj) throws StorageException
        {
        HibernateUtils.getCurrentSession().lock(obj, LockMode.READ);
    }
        public void lockWrite(5+0%2Fdocs%2Fapi+Object">Object obj) throws StorageException
        {
        HibernateUtils.getCurrentSession().lock(obj, LockMode.WRITE);
    }
}