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);
}
}