Galera,
estou querendo fazer uma consulta no hibernate usando criteria mas, quando eu realizo a mesma ele não encontra o parametro instituicao.nomeInstituicao. Por favor o que estou errando. Segue o código:
RCBP
package br.gov.inca.rcbp.bean;
import javax.persistence.CascadeType;
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.OneToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import br.gov.inca.publico.bean.Categoria;
import br.gov.inca.publico.bean.Instituicao;
import br.gov.inca.publico.bean.Municipio;
import br.gov.inca.publico.bean.UF;
@Entity
@SequenceGenerator(name = "SEQUENCE", sequenceName = "rcbp.rcbp_complemento_rcbp_seq")
@Table(schema = "rcbp")
public class RCBP {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQUENCE")
@Column(name = "id_rcbp")
private int idRCBP;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name="id_instituicao")
private Instituicao instituicao;
@ManyToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "id_categoria")
private Categoria categoria;
@Column(name = "logradouro_rcbp")
private String logradouroRCBP;
@Column(name = "complemento_rcbp")
private String complementoRCBP;
@Column(name = "bairro_rcbp")
private String bairro;
@ManyToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "id_uf")
private UF uf;
@ManyToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "id_municipio")
private Municipio municipio;
@Column(name = "email_rcbp")
private String emailRCBP;
@Column(name = "telefone_rcbp")
private String telefoneRCBP;
// private Set questionarios;
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
public Categoria getCategoria() {
return categoria;
}
public void setCategoria(Categoria categoria) {
this.categoria = categoria;
}
public String getComplementoRCBP() {
return complementoRCBP;
}
public void setComplementoRCBP(String complementoRCBP) {
this.complementoRCBP = complementoRCBP;
}
public String getEmailRCBP() {
return emailRCBP;
}
public void setEmailRCBP(String emailRCBP) {
this.emailRCBP = emailRCBP;
}
public int getIdRCBP() {
return idRCBP;
}
public void setIdRCBP(int idRCBP) {
this.idRCBP = idRCBP;
}
public Instituicao getInstituicao() {
return instituicao;
}
public void setInstituicao(Instituicao instituicao) {
this.instituicao = instituicao;
}
public String getLogradouroRCBP() {
return logradouroRCBP;
}
public void setLogradouroRCBP(String logradouroRCBP) {
this.logradouroRCBP = logradouroRCBP;
}
public Municipio getMunicipio() {
return municipio;
}
public void setMunicipio(Municipio municipio) {
this.municipio = municipio;
}
public String getTelefoneRCBP() {
return telefoneRCBP;
}
public void setTelefoneRCBP(String telefoneRCBP) {
this.telefoneRCBP = telefoneRCBP;
}
public UF getUf() {
return uf;
}
public void setUf(UF uf) {
this.uf = uf;
}
}
instituicao
package br.gov.inca.publico.bean;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.SequenceGenerator;
import br.gov.inca.rcbp.bean.RCBP;
@SuppressWarnings("serial")
@Entity
@SequenceGenerator(name = "SEQUENCE", sequenceName = "instituicao_id_instituicao_seq")
public class Instituicao implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQUENCE")
@Column(name = "id_instituicao")
private int idInstituicao;
@Column(name = "nome_instituicao")
private String nomeInstituicao;
@Column(name = "email_instituicao")
private String emailInstituicao;
@Column(name = "cnes_instituicao")
private String cnesInstituicao;
@Column(name = "cnpj_instituicao")
private String cnpjInstituicao;
@Column(name = "telefone_central")
private String telefoneCentral;
@Column(name = "endereco_www")
private String enderecoWWW;
@OneToOne(mappedBy = "instituicao")
private RCBP rcbp;
public String getCnesInstituicao() {
return cnesInstituicao;
}
public void setCnesInstituicao(String cnesInstituicao) {
this.cnesInstituicao = cnesInstituicao;
}
public String getCnpjInstituicao() {
return cnpjInstituicao;
}
public void setCnpjInstituicao(String cnpjInstituicao) {
this.cnpjInstituicao = cnpjInstituicao;
}
public String getEmailInstituicao() {
return emailInstituicao;
}
public void setEmailInstituicao(String emailInstituicao) {
this.emailInstituicao = emailInstituicao;
}
public int getIdInstituicao() {
return idInstituicao;
}
public void setIdInstituicao(int idInstituicao) {
this.idInstituicao = idInstituicao;
}
public String getNomeInstituicao() {
return nomeInstituicao;
}
public void setNomeInstituicao(String nomeInstituicao) {
this.nomeInstituicao = nomeInstituicao;
}
public String getTelefoneCentral() {
return telefoneCentral;
}
public void setTelefoneCentral(String telefoneCentral) {
this.telefoneCentral = telefoneCentral;
}
public String getEnderecoWWW() {
return enderecoWWW;
}
public void setEnderecoWWW(String enderecoWWW) {
this.enderecoWWW = enderecoWWW;
}
public RCBP getRcbp() {
return rcbp;
}
public void setRcbp(RCBP rcbp) {
this.rcbp = rcbp;
}
}
busca de rcbp
package br.gov.inca.rcbp.action;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Map;
import org.apache.log4j.Logger;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Expression;
import br.gov.inca.publico.bean.Municipio;
import br.gov.inca.publico.bean.UF;
import br.gov.inca.publico.dao.Dao;
import br.gov.inca.rcbp.bean.RCBP;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class RCBPBuscarAction extends ActionSupport {
private RCBP rcbp;
private Collection<UF> ufs;
private Collection<Municipio> municipios;
private static Logger log = Logger.getLogger(RCBPBuscarAction.class);
public RCBP getRcbp() {
return rcbp;
}
public void setRcbp(RCBP rcbp) {
this.rcbp = rcbp;
}
public Collection<Municipio> getMunicipios() {
return municipios;
}
public void setMunicipios(Collection<Municipio> municipios) {
this.municipios = municipios;
}
public Collection<UF> getUfs() {
return ufs;
}
public void setUfs(Collection<UF> ufs) {
this.ufs = ufs;
}
@SuppressWarnings("unchecked")
public String buscar() {
Dao<RCBP> daoRCBP = new Dao<RCBP>();
Map<String, ArrayList<RCBP>> map = (Map<String, ArrayList<RCBP>>) ActionContext.getContext().getSession();
ArrayList<Criterion> criterios = new ArrayList<Criterion>();
criterios.add(Expression.like("instituicao.nomeInstituicao", "%"+ this.rcbp.getInstituicao().getNomeInstituicao() + "%"));
if(this.rcbp.getUf()!= null && this.rcbp.getUf().getIdUF()!= -1)
criterios.add(Expression.eq("uf.idUF", this.rcbp.getUf().getIdUF()));
try {
map.put("rcbps", daoRCBP.buscar(this.rcbp, criterios));
} catch (Exception e) {
log.fatal(e.getMessage());
}
return SUCCESS;
}
public String carregar() {
Dao<RCBP> daoRCBP = new Dao<RCBP>();
try {
this.rcbp = (RCBP) daoRCBP.carregar(this.rcbp.getClass(), this.rcbp
.getIdRCBP());
} catch (Exception e) {
log.fatal(e.getMessage());
}
return SUCCESS;
}
public String preparar() {
Dao<UF> daoUF = new Dao<UF>();
Dao<Municipio> daoMunicipio = new Dao<Municipio>();
try{
this.setUfs(daoUF.listar(new UF()));
this.setMunicipios(daoMunicipio.listar(new Municipio()));
}catch(Exception e){
log.fatal(e.getMessage());
}
return SUCCESS;
}
public String prepararConsulta() {
Dao<UF> daoUF = new Dao<UF>();
Dao<Municipio> daoMunicipio = new Dao<Municipio>();
try{
this.setUfs(daoUF.listar(new UF()));
this.setMunicipios(daoMunicipio.listar(new Municipio()));
}catch(Exception e){
log.fatal(e.getMessage());
}
return SUCCESS;
}
}