package it.csi.demo.democomp.business.business.dao.refappdao.dao;

import it.csi.demo.democomp.business.business.dao.refappdao.dao.*;
import it.csi.demo.democomp.business.business.dao.refappdao.dto.*;
import it.csi.demo.democomp.business.business.dao.refappdao.qbe.*;
import it.csi.demo.democomp.business.business.dao.refappdao.metadata.*;
import it.csi.demo.democomp.business.business.dao.refappdao.exceptions.*;
import it.csi.demo.democomp.business.business.dao.util.*;
import it.csi.demo.democomp.business.business.dao.qbe.*;
import java.util.*;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * @generated
 */
public interface PersonaDao {

	/**
	 * Method 'insert'
	 * 
	 * @param dto
	 * @return PersonaPk
	 * @generated
	 */

	public PersonaPk insert(PersonaDto dto)

	;

	/** 
	 * Updates a single row in the PERSONA table.
	 * @generated
	 */
	public void update(PersonaDto dto) throws PersonaDaoException;

	/** 
	 * Deletes a single row in the PERSONA table.
	 * @generated
	 */

	public void delete(PersonaPk pk) throws PersonaDaoException;

	/**
	 * Method 'mapRow'
	 * 
	 * @param rs
	 * @param row
	 * @throws SQLException
	 * @return PersonaDto
	 * @generated
	 */
	public PersonaDto mapRow(ResultSet rs, int row) throws SQLException;

	/**
	 * Method 'mapRow_internal'
	 * 
	 * @param rs
	 * @param row
	 * @throws SQLException
	 * @return PersonaDto
	 * @generated
	 */
	public PersonaDto mapRow_internal(PersonaDto objectToFill, ResultSet rs,
			int row) throws SQLException;

	/** 
	 * Returns all rows from the PERSONA table that match the primary key criteria
	 * @generated
	 */
	@SuppressWarnings("unchecked")
	public PersonaDto findByPrimaryKey(PersonaPk pk) throws PersonaDaoException;

	/** 
	 * Returns all rows from the PERSONA table that match the criteria ''.
	 * @generated
	 */
	@SuppressWarnings("unchecked")
	public List<PersonaDto> findAll() throws PersonaDaoException;

	/** 
	 * Implementazione del finder  query-by-example
	 * @generated
	 */
	public List<PersonaDto> findByExamples_(
			ArrayList<it.csi.demo.democomp.business.business.dao.refappdao.qbe.PersonaExample> positive,
			ArrayList<it.csi.demo.democomp.business.business.dao.refappdao.qbe.PersonaExample> negative)
			throws PersonaDaoException;
}
