Boa tarde a todos! tenho uma consulta em hibernate que pega de duas classes Demanda e Sistema. sendo que Sistema tem relaciomento com Demanda.
quando puxo uma consulta de Demanda pelo relaciomento com Sistema tomo o erro:
org.hibernate.QueryException: could not resolve property: sistema.nomeSistema of: com.brq.domain.entity.Demanda
já verifiquei o nome do atributo os gets e sets e está tudo certo. Mas continuo tomando o erro.
Vlw gente pela ajuda!
classe Demanda
public class Demanda implements Serializable {
private static final long serialVersionUID = -7687224012522319147L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id_demanda")
private Integer idDemanda;
@Column(name = "int_total_artefato", nullable = true)
private Integer totalArtefato;
@Column(name = "int_quantidade_retorno", nullable = true)
private Integer quantidadeRetorno;
@Column(name = "db_quantidade_horas", nullable = true)
private Double quantidadeHoras;
@Column(name = "tx_numero_demanda", length = 16, nullable = true)
private String numeroDemanda;
@Column(name = "tx_descricao_atividade", length = 512, nullable = true)
private String descricaoDaAtividade;
@Column(name = "tx_status", length = 127, nullable = true)
private String status;
@Column(name = "tx_etapa_qualidade", length = 127, nullable = true)
private String etapaQualidade;
@Column(name = "tx_artefato", length = 256, nullable = true)
private String artefato;
@Column(name = "tx_situacao", length = 127, nullable = true)
private String situacao;
@Column(name = "tx_esforco_restante_previsto", length = 128, nullable = true)
private String esforcoRestantePrevisto;
@Column(name = "tx_observacoes", length = 512, nullable = true)
private String observacoes;
@Column(name = "tx_corretiva", length = 8, nullable = true)
private String corretiva;
@Temporal(TemporalType.DATE)
@Column(name = "dt_inicio", nullable = true)
private Date dataInicio;
@Temporal(TemporalType.DATE)
@Column(name = "dt_fim", nullable = true)
private Date dataFim;
@Temporal(TemporalType.DATE)
@Column(name = "dt_inicio_real", nullable = true)
private Date dataInicioReal;
@Temporal(TemporalType.DATE)
@Column(name = "dt_fim_real", nullable = true)
private Date dataFimReal;
@Temporal(TemporalType.DATE)
@Column(name = "dt_homologacao", nullable = true)
private Date dataHomologacao;
@Temporal(TemporalType.DATE)
@Column(name = "dt_inicio_ajuste", nullable = true)
private Date dataInicioAjuste;
@Temporal(TemporalType.DATE)
@Column(name = "dt_entraga_ajuste", nullable = true)
private Date dataEntregaAjuste;
@Column(name = "int_pes", nullable = true)
private Integer pes;
@OneToOne(targetEntity = com.brq.domain.entity.TipoRetorno.class)
@JoinColumn(name = "id_tipo_retorno")
private TipoRetorno tipoRetorno;
@ManyToOne
@JoinColumn(name = "id_sistema")
private Sistema sistema;
public Integer getIdDemanda() {
return idDemanda;
}
public void setIdDemanda(Integer idDemanda) {
this.idDemanda = idDemanda;
}
public Integer getTotalArtefato() {
return totalArtefato;
}
public void setTotalArtefato(Integer totalArtefato) {
this.totalArtefato = totalArtefato;
}
public Integer getQuantidadeRetorno() {
return quantidadeRetorno;
}
public void setQuantidadeRetorno(Integer quantidadeRetorno) {
this.quantidadeRetorno = quantidadeRetorno;
}
public Double getQuantidadeHoras() {
return quantidadeHoras;
}
public void setQuantidadeHoras(Double quantidadeHoras) {
this.quantidadeHoras = quantidadeHoras;
}
public String getNumeroDemanda() {
return numeroDemanda;
}
public void setNumeroDemanda(String numeroDemanda) {
this.numeroDemanda = numeroDemanda;
}
public String getDescricaoDaAtividade() {
return descricaoDaAtividade;
}
public void setDescricaoDaAtividade(String descricaoDaAtividade) {
this.descricaoDaAtividade = descricaoDaAtividade;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getEtapaQualidade() {
return etapaQualidade;
}
public void setEtapaQualidade(String etapaQualidade) {
this.etapaQualidade = etapaQualidade;
}
public String getArtefato() {
return artefato;
}
public void setArtefato(String artefato) {
this.artefato = artefato;
}
public String getSituacao() {
return situacao;
}
public void setSituacao(String situacao) {
this.situacao = situacao;
}
public String getEsforcoRestantePrevisto() {
return esforcoRestantePrevisto;
}
public void setEsforcoRestantePrevisto(String esforcoRestantePrevisto) {
this.esforcoRestantePrevisto = esforcoRestantePrevisto;
}
public String getObservacoes() {
return observacoes;
}
public void setObservacoes(String observacoes) {
this.observacoes = observacoes;
}
public Date getDataInicio() {
return dataInicio;
}
public void setDataInicio(Date dataInicio) {
this.dataInicio = dataInicio;
}
public Date getDataFim() {
return dataFim;
}
public void setDataFim(Date dataFim) {
this.dataFim = dataFim;
}
public Date getDataInicioReal() {
return dataInicioReal;
}
public void setDataInicioReal(Date dataInicioReal) {
this.dataInicioReal = dataInicioReal;
}
public Date getDataFimReal() {
return dataFimReal;
}
public void setDataFimReal(Date dataFimReal) {
this.dataFimReal = dataFimReal;
}
public Date getDataHomologacao() {
return dataHomologacao;
}
public void setDataHomologacao(Date dataHomologacao) {
this.dataHomologacao = dataHomologacao;
}
public TipoRetorno getTipoRetorno() {
return tipoRetorno;
}
public void setTipoRetorno(TipoRetorno tipoRetorno) {
this.tipoRetorno = tipoRetorno;
}
public String getCorretiva() {
return corretiva;
}
public void setCorretiva(String corretiva) {
this.corretiva = corretiva;
}
public Date getDataInicioAjuste() {
return dataInicioAjuste;
}
public void setDataInicioAjuste(Date dataInicioAjuste) {
this.dataInicioAjuste = dataInicioAjuste;
}
public Date getDataEntregaAjuste() {
return dataEntregaAjuste;
}
public void setDataEntregaAjuste(Date dataEntregaAjuste) {
this.dataEntregaAjuste = dataEntregaAjuste;
}
public Integer getPes() {
return pes;
}
public void setPes(Integer pes) {
this.pes = pes;
}
public Sistema getSistema() {
return sistema;
}
public void setSistema(Sistema sistema) {
this.sistema = sistema;
}
}
CLASSE SISTEMA
package com.brq.domain.entity;
import java.io.Serializable;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
/**
*
* JavaBean que corresponde a tabela Sistema
*
*/
@Entity
@Table(name = "sistema")
@NamedQueries({
@NamedQuery(name="listar.sistema", query="select distinct new Sistema(nomeSistema) from Sistema order by tx_nome_sistema")
})
public class Sistema implements Serializable {
private static final long serialVersionUID = 2084961668747162033L;
@Column(name = "tx_nome_sistema", length = 128, nullable = true)
private String nomeSistema;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id_sistema")
private Integer idSistema;
@Column(name = "tx_responsavel", length = 128, nullable = true)
private String responsavel;
@Column(name = "tx_plataforma", length = 128, nullable = true)
private String plataforma;
@ManyToOne
@JoinColumn(name = "id_departamento")
private Departamento departamento;
@OneToMany(mappedBy="sistema")
private List<Demanda> demandas;
public Integer getIdSistema() {
return idSistema;
}
public void setIdSistema(Integer idSistema) {
this.idSistema = idSistema;
}
public String getNomeSistema() {
return nomeSistema;
}
public void setNomeSistema(String nomeSistema) {
this.nomeSistema = nomeSistema;
}
public String getResponsavel() {
return responsavel;
}
public void setResponsavel(String responsavel) {
this.responsavel = responsavel;
}
public String getPlataforma() {
return plataforma;
}
public void setPlataforma(String plataforma) {
this.plataforma = plataforma;
}
public Departamento getDepartamento() {
return departamento;
}
public void setDepartamento(Departamento departamento) {
this.departamento = departamento;
}
public List<Demanda> getDemandas() {
return demandas;
}
public void setDemandas(List<Demanda> demandas) {
this.demandas = demandas;
}
}
METODO QUE FAZ A CONSULTA
O ERRO ACONTECE NO SEGUNDO IF
public List<Demanda> getBuscarDemanda(Demanda demanda,String nomeSistema, Date dtInicial,Date dtFinal) throws Exception {
s = HibernateUtil.getInstance();
Criteria c = this.s.createCriteria(Demanda.class);
if (demanda.getNumeroDemanda() != null
&& !"".equals(demanda.getNumeroDemanda().trim())) {
c.add(Restrictions.ilike("numeroDemanda",
demanda.getNumeroDemanda(), MatchMode.ANYWHERE));
}
if(nomeSistema!=null && !"".equals(nomeSistema.trim())){
c.add(Restrictions.ilike("sistema.nomeSistema", nomeSistema));
}
if (demanda.getStatus() != null
&& !"".equals(demanda.getStatus().trim())) {
c.add(Restrictions.ilike("status", demanda.getStatus(),
MatchMode.EXACT));
}
if (dtInicial != null && dtFinal!=null) {
Criterion entreDatas = Restrictions.between("dataHomologacao", dtInicial, dtFinal);
Criterion nulldata = Restrictions.isNull("dataHomologacao");
LogicalExpression orExp = Restrictions.or(entreDatas, nulldata);
c.add(orExp);
}
if (demanda.getIdDemanda() != null) {
c.add(Restrictions.ilike("idDemanda", demanda.getIdDemanda()));
}
c.addOrder(Order.asc("dataHomologacao"));
return c.list();
}
CODIGO DO ERRO
org.hibernate.QueryException: could not resolve property: sistema.nomeSistema of: com.brq.domain.entity.Demanda
at org.hibernate.persister.entity.AbstractPropertyMapping.throwPropertyException(AbstractPropertyMapping.java:43)
at org.hibernate.persister.entity.AbstractPropertyMapping.toColumns(AbstractPropertyMapping.java:63)
at org.hibernate.persister.entity.BasicEntityPropertyMapping.toColumns(BasicEntityPropertyMapping.java:31)
at org.hibernate.persister.entity.AbstractEntityPersister.toColumns(AbstractEntityPersister.java:1304)
at org.hibernate.loader.criteria.CriteriaQueryTranslator.getColumns(CriteriaQueryTranslator.java:434)
at org.hibernate.loader.criteria.CriteriaQueryTranslator.getColumnsUsingProjection(CriteriaQueryTranslator.java:394)
at org.hibernate.criterion.IlikeExpression.toSqlString(IlikeExpression.java:32)
at org.hibernate.loader.criteria.CriteriaQueryTranslator.getWhereCondition(CriteriaQueryTranslator.java:334)
at org.hibernate.loader.criteria.CriteriaJoinWalker.<init>(CriteriaJoinWalker.java:82)
at org.hibernate.loader.criteria.CriteriaLoader.<init>(CriteriaLoader.java:68)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1550)
at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
at com.brq.persistence.hibernate.DemandaDao.getBuscarDemanda(DemandaDao.java:100)
at com.brq.control.RelDemandaBean.buscarDemanda(RelDemandaBean.java:73)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.el.parser.AstValue.invoke(AstValue.java:262)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:70)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296)
at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:532)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:269)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)