Olá pessoal!
Estou com dificuldades no Hibernate para realizar consultas, já procurei aqui no forum, mas não consegui resolver o problema. Quando tento fazer uma consulta na tabela funcionário, por exemplo, esta dando o seguinte erro:
[color=red]Hibernate: /* from Funcionario */ select funcionari0_.cpf_fun as cpf1_5_, funcionari0_.nome as nome5_, funcionari0_.foto as foto5_, funcionari0_.rg as rg5_, funcionari0_.org_emissor as org5_5_, funcionari0_.pis as pis5_, funcionari0_.ctps as ctps5_, funcionari0_.te as te5_, funcionari0_.nacionalidade as nacional9_5_, funcionari0_.naturalidade as natural10_5_, funcionari0_.endereco as endereco5_, funcionari0_.complemento as complem12_5_, funcionari0_.bairro as bairro5_, funcionari0_.cidade as cidade5_, funcionari0_.estado as estado5_, funcionari0_.cep as cep5_, funcionari0_.dt_nasc as dt17_5_, funcionari0_.TelRes as TelRes5_, funcionari0_.TelCel as TelCel5_, funcionari0_.email as email5_, funcionari0_.cargo as cargo5_, funcionari0_.escolaridade as escolar22_5_, funcionari0_.dt_admi as dt23_5_, funcionari0_.dt_demi as dt24_5_, funcionari0_.salario as salario5_, funcionari0_.cont_sind as cont26_5_, funcionari0_.status_func as status27_5_, funcionari0_1_.atividade as atividade7_, funcionari0_2_.login as login8_, funcionari0_2_.senha as senha8_, funcionari0_2_.tp_usu as tp4_8_, funcionari0_2_.tema as tema8_, funcionari0_2_.bloq as bloq8_, case when funcionari0_1_.cpf_fun is not null then 1 when funcionari0_2_.cpf_fun is not null then 2 when funcionari0_.cpf_fun is not null then 0 end as clazz_ from Funcionario funcionari0_ left outer join Professor funcionari0_1_ on funcionari0_.cpf_fun=funcionari0_1_.cpf_fun left outer join Usuario funcionari0_2_ on funcionari0_.cpf_fun=funcionari0_2_.cpf_fun
Exception in thread “main” org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of PacoteModelo.Funcionario.FrequenciaFunc
at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:104)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:337)
at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:200)
at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:3571)
at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:133)
at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:854)
at org.hibernate.loader.Loader.doQuery(Loader.java:729)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2213)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
at org.hibernate.loader.Loader.list(Loader.java:2099)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at PacotePercistencia.Consulta.main(Consulta.java:31)
Caused by: java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:42)
… 16 more
Java Result: 1[/color]
Classe de Consulta: Consulta.java
[code]import PacoteModelo.Aluno;
import PacoteModelo.FrequenciaFunc;
import PacoteModelo.Funcionario;
import PacoteModelo.Responsavel;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Transaction;
import org.hibernate.Session;
import org.hibernate.Query;
/**
*
-
@author Bruno
*/
public class Consulta {public static void main(String [] args) {
Session sessao = HibernateUtility.getSession(); Transaction tx = sessao.beginTransaction(); Query select = sessao.createQuery("from Funcionario"); select.setFirstResult(0); List objetos = select.list(); Iterator item = objetos.iterator(); while (item.hasNext()) { Funcionario r = (Funcionario) item.next(); System.out.println("---------------------------------------"); System.out.println(r.getBairro()); System.out.println("---------------------------------------"); } tx.commit(); sessao.close();}
}[/code]
Classe Funcionario.java
[code]package PacoteModelo;
import java.util.Date;
public class Funcionario {
private String Nome;
private String Foto;
private String CPF;
private String RG;
private String orgaoEmissor;
private String PIS;
private String NCarTrab;
private String TEleitoral;
private String Nacionalidade;
private String Naturalidade;
private String End;
private String Comp;
private String Bairro;
private String Cidade;
private String Estado;
private int CEP;
private Date DtNasc;
private String TelRes;
private String TelCel;
private String Email;
private String Cargo;
private String Escolaridade;
private Date DtAdm;
private Date DtDem;
private float Sal;
private float ContrSind;
private int Status;
private FrequenciaFunc[] frequenciaFunc;
public boolean verificaFunc(int cpf) {
return false;
}
public String getNome() {
return Nome;
}
public void setNome(String Nome) {
this.Nome = Nome;
}
public String getFoto() {
return Foto;
}
public void setFoto(String Foto) {
this.Foto = Foto;
}
public String getCPF() {
return CPF;
}
public void setCPF(String CPF) {
this.CPF = CPF;
}
public String getRG() {
return RG;
}
public void setRG(String RG) {
this.RG = RG;
}
public String getOrgaoEmissor() {
return orgaoEmissor;
}
public void setOrgaoEmissor(String orgaoEmissor) {
this.orgaoEmissor = orgaoEmissor;
}
public String getPIS() {
return PIS;
}
public void setPIS(String PIS) {
this.PIS = PIS;
}
public String getNCarTrab() {
return NCarTrab;
}
public void setNCarTrab(String NCarTrab) {
this.NCarTrab = NCarTrab;
}
public String getTEleitoral() {
return TEleitoral;
}
public void setTEleitoral(String TEleitoral) {
this.TEleitoral = TEleitoral;
}
public String getNacionalidade() {
return Nacionalidade;
}
public void setNacionalidade(String Nacionalidade) {
this.Nacionalidade = Nacionalidade;
}
public String getNaturalidade() {
return Naturalidade;
}
public void setNaturalidade(String Naturalidade) {
this.Naturalidade = Naturalidade;
}
public String getEnd() {
return End;
}
public void setEnd(String End) {
this.End = End;
}
public String getComp() {
return Comp;
}
public void setComp(String Comp) {
this.Comp = Comp;
}
public String getBairro() {
return Bairro;
}
public void setBairro(String Bairro) {
this.Bairro = Bairro;
}
public String getCidade() {
return Cidade;
}
public void setCidade(String Cidade) {
this.Cidade = Cidade;
}
public String getEstado() {
return Estado;
}
public void setEstado(String Estado) {
this.Estado = Estado;
}
public int getCEP() {
return CEP;
}
public void setCEP(int CEP) {
this.CEP = CEP;
}
public Date getDtNasc() {
return DtNasc;
}
public void setDtNasc(Date DtNasc) {
this.DtNasc = DtNasc;
}
public String getTelRes() {
return TelRes;
}
public void setTelRes(String TelRes) {
this.TelRes = TelRes;
}
public String getTelCel() {
return TelCel;
}
public void setTelCel(String TelCel) {
this.TelCel = TelCel;
}
public String getEmail() {
return Email;
}
public void setEmail(String Email) {
this.Email = Email;
}
public String getCargo() {
return Cargo;
}
public void setCargo(String Cargo) {
this.Cargo = Cargo;
}
public String getEscolaridade() {
return Escolaridade;
}
public void setEscolaridade(String Escolaridade) {
this.Escolaridade = Escolaridade;
}
public Date getDtAdm() {
return DtAdm;
}
public void setDtAdm(Date DtAdm) {
this.DtAdm = DtAdm;
}
public Date getDtDem() {
return DtDem;
}
public void setDtDem(Date DtDem) {
this.DtDem = DtDem;
}
public float getSal() {
return Sal;
}
public void setSal(float Sal) {
this.Sal = Sal;
}
public float getContrSind() {
return ContrSind;
}
public void setContrSind(float ContrSind) {
this.ContrSind = ContrSind;
}
public FrequenciaFunc[] getFrequenciaFunc() {
return frequenciaFunc;
}
public void setFrequenciaFunc(FrequenciaFunc[] frequenciaFunc) {
this.frequenciaFunc = frequenciaFunc;
}
public int getStatus() {
return Status;
}
public void setStatus(int Status) {
this.Status = Status;
}
}[/code]
Classe de Frequencia do Funcionario: FrequenciaFunc.java
[code]import java.util.Date;
public class FrequenciaFunc {
private String cpf;
private Date Data;
private Date Hora;
private Funcionario funcionario;
public Date getData() {
return Data;
}
public void setData(Date Data) {
this.Data = Data;
}
public Date getHora() {
return Hora;
}
public void setHora(Date Hora) {
this.Hora = Hora;
}
public Funcionario getFuncionario() {
return funcionario;
}
public void setFuncionario(Funcionario funcionario) {
this.funcionario = funcionario;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
}[/code]
Mapeamento da classe Funcionario.java: Funcionario.hbm.xml
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="PacoteModelo.Funcionario">
<id name="CPF" column="cpf_fun" type="string">
<generator class="assigned">
<param name="CPF">CPF</param>
</generator>
</id>
<set name="FrequenciaFunc" lazy="true" inverse="true">
<key column="cpf_fun" not-null="true"/>
<one-to-many class="PacoteModelo.FrequenciaFunc"/>
</set>
<property name="Nome" column="nome"/>
<property name="Foto" column="foto"/>
<property name="RG" column="rg"/>
<property name="orgaoEmissor" column="org_emissor"/>
<property name="PIS" column="pis"/>
<property name="NCarTrab" column="ctps"/>
<property name="TEleitoral" column="te"/>
<property name="Nacionalidade" column="nacionalidade"/>
<property name="Naturalidade" column="naturalidade"/>
<property name="End" column="endereco"/>
<property name="Comp" column="complemento"/>
<property name="Bairro" column="bairro"/>
<property name="Cidade" column="cidade"/>
<property name="Estado" column="estado"/>
<property name="CEP" column="cep"/>
<property name="DtNasc" column="dt_nasc"/>
<property name="TelRes" column="TelRes"/>
<property name="TelCel" column="TelCel"/>
<property name="Email" column="email"/>
<property name="Cargo" column="cargo"/>
<property name="Escolaridade" column="escolaridade"/>
<property name="DtAdm" column="dt_admi"/>
<property name="DtDem" column="dt_demi"/>
<property name="Sal" column="salario"/>
<property name="ContrSind" column="cont_sind"/>
<property name="Status" column="status_func"/>
</class>
</hibernate-mapping>
Mapeamento da classe FrequenciaFunc.java: FrequenciaFunc.hbm.xml
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="PacoteModelo.FrequenciaFunc" table="frequencia_func">
<id name="cpf" column="cpf_fun">
<generator class="foreign">
<param name="property">funcionario</param>
</generator>
</id>
<many-to-one
name="funcionario"
column="cpf_fun"
not-null="false"
insert="false"
update="false"
/>
<property name="Data" column="data_freq_func"/>
<property name="Hora" column="hora"/>
</class>
</hibernate-mapping>
Desde já muito obrigado, estou postando também o meu DER para maior esclarecimento.
