package com.joe.utilities.core.hibernate.repository.impl;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
/**
* Hibernate-specific database access to lock table operations.
* @author Dave Ousey
*
* Creation date: 10/16/2007 11:43 PM
* Copyright (c) 2007 MEDecision, Inc. All rights reserved.
*/
public class LockRepositoryImpl extends HibernateDaoSupport
{
private static Log log = LogFactory.getLog(LockRepositoryImpl.class);
/**
* Contructor with dependent Session object
* @param session
*/
public LockRepositoryImpl(HibernateTemplate hibernateTemplate) {
setHibernateTemplate(hibernateTemplate);
}
/**
* @see com.med.utilities.repository.LockRepository#createPhysicalLock(org.hibernate.Session, java.lang.String)
*/
/**
* @see com.med.utilities.repository.LockRepository#deletePhysicalLock(java.lang.String)
*/
public void deletePhysicalLock(String lockName)
{
getSession(false).createQuery("delete from PhysicalLock where tableName = :lockName")
.setParameter("lockName", lockName)
.executeUpdate();
}
/**
* @see com.med.utilities.repository.LockRepository#deleteSessionLocks(java.lang.String)
*/
public void deleteSessionLocks(String sessionID)
{
getSession(false).createQuery("delete LogicalLock where sessionID = :sessionID")
.setParameter("sessionID", sessionID)
.executeUpdate();
}
/**
* @see com.med.utilities.repository.LockRepository#deleteSessionLocksForTable(java.lang.String, java.lang.String)
*/
public void deleteSessionLocksForTable(String tableName, String sessionID)
{
if (tableName == null)
throw new IllegalArgumentException("Required table name parameter is missing in call to UtilityResourceHelper - deleteSessionLocksForTable task.");
getSession(false).createQuery("delete LogicalLock where tableName = :tableName and sessionID = :sessionID")
.setParameter("tableName", tableName)
.setParameter("sessionID", sessionID)
.executeUpdate();
}
}