Alguem que entenda de ireport por favor ajuda?

botao que chama o relatorio no filtro colocando uma data para filtrar.estou tentando filtra relatorio por data porem este botao nao retorna nenhuma consulta no relatorio o que esta faltando?

    [code]botao1.addActionListener(new ActionListener() {   
           
        public void actionPerformed(ActionEvent e) {   
        	  RelatorioCliente rep = new RelatorioCliente();  
              JasperPrint relat;  
              try {  
                  relat = rep.gerarRelatorioCliente();  
                  JasperViewer.viewReport(relat, false);  
              } catch (Exception e1) {  
                  e1.printStackTrace();  
              }  

//
}
});
[/code]

codigo do relatorio cliente conexao

[code]import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;

public class RelatorioCliente
{
Connection con;

public JasperPrint gerarRelatorioCliente() 
throws Exception
{ JasperPrint rel=null;

String url = "jdbc:postgresql://localhost:5432/TurmaN40";

try { 
	Class.forName("org.postgresql.Driver");
} catch(java.lang.ClassNotFoundException e1) { 
    System.err.print("ClassNotFoundException: "); 
    System.err.println(e1.getMessage()); 
} 
try { 
    con = DriverManager.getConnection(url,"postgres", "postgres"); 
} catch(SQLException ex) { 
    System.err.print("SQLException: "); 
    System.err.println(ex.getMessage()); 

}

try	{ // Connection con = Conexao.criaConexao(); 
HashMap<String, JasperPrint> map= new HashMap<String, JasperPrint>();
new SimpleDateFormat("dd/MM/yyyy").format(new Date().getTime());
map.put("dat",rel); 
String arquivoJasper= "C:\\vidracaria\\RelatorioCliente.jasper"; 
rel=JasperFillManager.fillReport(arquivoJasper,map,con);
con.close();
}
catch (JRException e)
{ e.printStackTrace(); 
} 
return rel; 
}

}[/code]

query do relatorio no ireport

select * from cliente where date(data) = $P{dat}

getters e setters da janela cliente

[code]package Modelo;

import java.util.Calendar;
import java.util.Date;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import datechooser.beans.DateChooserCombo;
@Entity
public class Cliente {
@Id
private int codcliente;
@Temporal(TemporalType.DATE)
private Calendar data;

private String NomeCompleto;

private String endereco;

private String Bairro;

private String Cidade;

private String uf;

private int cep;

private int telefone;

private String complemento;

private String email;

private String rg;

private String cpf;
@Temporal(TemporalType.DATE)
private Calendar datadenascimento;

public String getBairro() {
	return Bairro;
}

public void setBairro(String bairro) {
	Bairro = bairro;
}

public int getCep() {
	return cep;
}

public void setCep(int cep) {
	this.cep = cep;
}

public String getCidade() {
	return Cidade;
}

public void setCidade(String cidade) {
	Cidade = cidade;
}



public int getCodcliente() {
	return codcliente;
}

public void setCodcliente(int codcliente) {
	this.codcliente = codcliente;
}

public String getComplemento() {
	return complemento;
}

public void setComplemento(String complemento) {
	this.complemento = complemento;
}



public String getEmail() {
	return email;
}

public void setEmail(String email) {
	this.email = email;
}

public String getEndereco() {
	return endereco;
}

public void setEndereco(String endereco) {
	this.endereco = endereco;
}

public String getNomeCompleto() {
	return NomeCompleto;
}

public void setNomeCompleto(String nomeCompleto) {
	NomeCompleto = nomeCompleto;
}

public String getRg() {
	return rg;
}

public void setRg(String rg) {
	this.rg = rg;
}

public int getTelefone() {
	return telefone;
}

public void setTelefone(int telefone) {
	this.telefone = telefone;
}

public String getUf() {
	return uf;
}

public void setUf(String uf) {
	this.uf = uf;
}

public Calendar getData() {
	return data;
}

public void setData(Calendar data) {
	this.data = data;
}

public String getCpf() {
	return cpf;
}

public void setCpf(String cpf) {
	this.cpf = cpf;
}

public Calendar getDatadenascimento() {
	return datadenascimento;
}

public void setDatadenascimento(Calendar datadenascimento) {
	this.datadenascimento = datadenascimento;
}	

}[/code]

alguem pode ajudar uso hibernate.