/**
* TNTConcept Easy Enterprise Management by Autentia Real Bussiness Solution S.L.
* Copyright (C) 2007 Autentia Real Bussiness Solution S.L.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.autentia.tnt.dao.hibernate;
import com.autentia.tnt.businessobject.Contact;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.autentia.tnt.businessobject.Department;
import com.autentia.tnt.businessobject.Document;
import com.autentia.tnt.dao.DataAccException;
import com.autentia.tnt.dao.IDataAccessObject;
import com.autentia.tnt.dao.SearchCriteria;
import com.autentia.tnt.dao.SortCriteria;
import com.autentia.tnt.util.SpringUtils;
public class DepartmentDAO extends HibernateManagerBase<Department>
{
/* Department - generated by stajanov (do not edit/delete) */
/** Logger */
private static final Log log = LogFactory.getLog(DepartmentDAO.class);
/**
* Get default DepartmentDAO as defined in Spring's configuration file.
* @return the default singleton DepartmentDAO
*/
public static DepartmentDAO getDefault()
{
return (DepartmentDAO)SpringUtils.getSpringBean("daoDepartment");
}
/**
* Constructor
* @deprecated do not construct DAOs alone: use Spring's declared beans
*/
public DepartmentDAO(){
super(false);
}
/**
* Retrieve a Department object from database given its id
* @param id primary key of Department object
* @return the Department object identified by the id
* @throws DataAccException on error
*/
public Department getById( int id ) throws DataAccException {
return super.getByPk(Department.class,id);
}
/**
* Get all Department objects from database sorted by the given criteria
* @param crit the sorting criteria
* @return a list with all existing Department objects
* @throws DataAccException on error
*/
public List<Department> search( SortCriteria crit ) throws DataAccException {
return super.list(Department.class,crit);
}
/**
* Get specified Department objects from database sorted by the given criteria
* @param search search criteria
* @param sort the sorting criteria
* @return a list with Department objects matching the search criteria
* @throws DataAccException on error
*/
public List<Department> search(SearchCriteria search, SortCriteria sort) throws DataAccException {
return super.search(Department.class,search,sort);
}
/**
* Insert a new Department object in database
* @param dao the Department object to insert
* @throws DataAccException on error
*/
public void insert(Department dao) throws DataAccException {
super.insert(dao);
}
/**
* Update an existing Department object in database
* @param dao the Department object to update
* @throws DataAccException on error
*/
public void update(Department dao) throws DataAccException {
super.update(dao,dao.getId());
}
/**
* Delete an existing Department object in database
* @param dao the Department object to update
* @throws DataAccException on error
*/
public void delete(Department dao) throws DataAccException {
super.delete(dao,dao.getId());
}
/* Department - generated by stajanov (do not edit/delete) */
public List<Contact> getContactsForDepartment(Department department) {
return super.search("select distinct ci.contact from ContactInfo ci where ci.department.id = :arg0", department.getId());
}
/**
* Get all department children of this department
*/
public List<Department> getChildrenDepartments(Department department) {
return super.search("select dep from Department dep where dep.parent.id = :arg0", department.getId());
}
}