/**
* 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.Organization;
import com.autentia.tnt.businessobject.OrganizationType;
import com.autentia.tnt.dao.DataAccException;
import com.autentia.tnt.dao.SearchCriteria;
import com.autentia.tnt.dao.SortCriteria;
import com.autentia.tnt.util.SpringUtils;
/**
* DAO for Organization objects.
* @author stajanov code generator
*/
public class OrganizationDAO extends HibernateManagerBase<Organization>
{
/* organization - generated by stajanov (do not edit/delete) */
/** Logger */
private static final Log log = LogFactory.getLog(OrganizationDAO.class);
/**
* Get default OrganizationDAO as defined in Spring's configuration file.
* @return the default singleton OrganizationDAO
*/
public static OrganizationDAO getDefault()
{
return (OrganizationDAO)SpringUtils.getSpringBean("daoOrganization");
}
/**
* Constructor
* @deprecated do not construct DAOs alone: use Spring's declared beans
*/
public OrganizationDAO(){
super(false);
}
/**
* Retrieve a Organization object from database given its id
* @param id primary key of Organization object
* @return the Organization object identified by the id
* @throws DataAccException on error
*/
public Organization getById( int id ) throws DataAccException {
return super.getByPk(Organization.class,id);
}
/**
* Get all Organization objects from database sorted by the given criteria
* @param crit the sorting criteria
* @return a list with all existing Organization objects
* @throws DataAccException on error
*/
public List<Organization> search( SortCriteria crit ) throws DataAccException {
return super.list(Organization.class,crit);
}
/**
* Get specified Organization objects from database sorted by the given criteria
* @param search search criteria
* @param sort the sorting criteria
* @return a list with Organization objects matching the search criteria
* @throws DataAccException on error
*/
public List<Organization> search(SearchCriteria search, SortCriteria sort) throws DataAccException {
return super.search(Organization.class,search,sort);
}
/**
* Insert a new Organization object in database
* @param dao the Organization object to insert
* @throws DataAccException on error
*/
public void insert(Organization dao) throws DataAccException {
super.insert(dao);
}
/**
* Update an existing Organization object in database
* @param dao the Organization object to update
* @throws DataAccException on error
*/
public void update(Organization dao) throws DataAccException {
super.update(dao,dao.getId());
}
/**
* Delete an existing Organization object in database
* @param dao the Organization object to update
* @throws DataAccException on error
*/
public void delete(Organization dao) throws DataAccException {
super.delete(dao,dao.getId());
super.flush();
}
/* organization - generated by stajanov (do not edit/delete) */
public List<Organization> searchByOrganizationTypes(SortCriteria sort, OrganizationType...args) throws DataAccException {
StringBuilder query = new StringBuilder("FROM ");
query.append(Organization.class.getName());
query.append(" as o where o.type in (");
for(int i=0;i<args.length;i++) {
if(i!=0)
query.append(",");
query.append(":arg"+i);
}
query.append(") ");
query.append(sort.getHQL());
return (List<Organization>)super.search(query.toString(),args);
}
public List<Contact> getContactsForOrganization(Organization organization) {
return super.search("select distinct ci.contact from ContactInfo ci where ci.organization.id = :arg0", organization.getId());
}
}