view+hibernate

Java

13/03/2015

Boa tarde via uma documentação no hibernate, que o mesmo trata as view como uma entidade, sendo assim ao gera uma entidade dessa view ele criara um objeto com todos os atributos exibidos na view. Porem quando mando o hibernate da um select dessa view apresenta a falta de atributos.

view
CREATE
VIEW VIEW_PESSOA_CLIENTE
AS

select 
	C.ID,
	C.ID_OPERACAO_FISCAL,
	C.ID_PESSOA,
	C.ID_ATIVIDADE_FOR_CLI,
	C.ID_SITUACAO_FOR_CLI,
	C.DESDE,
	C.DATA_CADASTRO,
	C.OBSERVACAO,
	C.CONTA_TOMADOR,
	C.GERA_FINANCEIRO,
	C.INDICADOR_PRECO,
	C.PORCENTO_DESCONTO,
	C.FORMA_DESCONTO,
	C.LIMITE_CREDITO,
	C.TIPO_FRETE,
	E.LOGRADOURO, E.NUMERO, E.COMPLEMENTO, E.BAIRRO, E.CIDADE, E.CEP, E.MUNICIPIO_IBGE, E.UF, E.FONE, 
	P.NOME, P.TIPO, P.EMAIL, P.SITE, PF.CPF AS "CPF_CNPJ", PF.RG AS "RG_IE"
from
	PESSOA P 
	INNER JOIN PESSOA_FISICA PF ON (PF.ID_PESSOA = P.ID)
	INNER JOIN CLIENTE C ON (C.ID_PESSOA = P.ID)
	INNER JOIN PESSOA_ENDERECO E ON (E.ID_PESSOA = P.ID)
where 
	P.CLIENTE = "S" and E.PRINCIPAL = "S"

union

select 
	C.ID,
	C.ID_OPERACAO_FISCAL,
	C.ID_PESSOA,
	C.ID_ATIVIDADE_FOR_CLI,
	C.ID_SITUACAO_FOR_CLI,
	C.DESDE,
	C.DATA_CADASTRO,
	C.OBSERVACAO,
	C.CONTA_TOMADOR,
	C.GERA_FINANCEIRO,
	C.INDICADOR_PRECO,
	C.PORCENTO_DESCONTO,
	C.FORMA_DESCONTO,
	C.LIMITE_CREDITO,
	C.TIPO_FRETE,
	E.LOGRADOURO, E.NUMERO, E.COMPLEMENTO, E.BAIRRO, E.CIDADE, E.CEP, E.MUNICIPIO_IBGE, E.UF, E.FONE, 
	P.NOME, P.TIPO, P.EMAIL, P.SITE, PJ.CNPJ AS "CPF_CNPJ", PJ.INSCRICAO_ESTADUAL AS "RG_IE"
from
	PESSOA P 
	INNER JOIN PESSOA_JURIDICA PJ ON (PJ.ID_PESSOA = P.ID)
	INNER JOIN CLIENTE C ON (C.ID_PESSOA = P.ID)
	INNER JOIN PESSOA_ENDERECO E ON (E.ID_PESSOA = P.ID)
where 
	P.CLIENTE = "S" and E.PRINCIPAL = "S"




entidade da view

@Entity
@Table(name = "view_pessoa_cliente")
@XmlRootElement
public class PessoaCliente implements Serializable {
    private static final long serialVersionUID = 1L;
     @Id
    @Basic(optional = false)
    @Column(name = "ID")
    private Integer id;
    @Column(name = "id_operacao_fiscal")
    private Integer idOperacaoFiscal;
    @Column(name = "id_pessoa")
    private Integer idPessoa;
    @Column(name = "id_atividade_for_cli")
    private Integer idAtividadeForCli;
    @Column(name = "id_situacao_for_cli")
    private Integer idSituacaoForCli;
    @Column(name = "desde")
    @Temporal(TemporalType.DATE)
    private Date desde;
    @Column(name = "data_cadastro")
    @Temporal(TemporalType.DATE)
    private Date dataCadastro;
    @Column(name = "observacao", length = 2147483647)
    private String observacao;
    @Column(name = "conta_tomador", length = 30)
    private String contaTomador;
    @Column(name = "gera_financeiro")
    private Character geraFinanceiro;
    @Column(name = "indicador_preco")
    private Character indicadorPreco;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Column(name = "porcento_desconto", precision = 18, scale = 6)
    private BigDecimal porcentoDesconto;
    @Column(name = "forma_desconto")
    private Character formaDesconto;
    @Column(name = "limite_credito", precision = 18, scale = 6)
    private BigDecimal limiteCredito;
    @Column(name = "tipo_frete")
    private Character tipoFrete;
    @Column(name = "logradouro", length = 60)
    private String logradouro;
    @Column(name = "numero", length = 10)
    private String numero;
    @Column(name = "complemento", length = 60)
    private String complemento;
    @Column(name = "bairro", length = 60)
    private String bairro;
    @Column(name = "cidade", length = 60)
    private String cidade;
    @Column(name = "cep", length = 8)
    private String cep;
    @Column(name = "municipio_ibge")
    private Integer municipioIbge;
    @Column(name = "uf", length = 2)
    private String uf;
    @Column(name = "fone", length = 14)
    private String fone;
    @Column(name = "nome", length = 150)
    private String nome;
    @Column(name = "tipo")
    private Character tipo;
    @Column(name = "email", length = 250)
    private String email;
    @Column(name = "site", length = 250)
    private String site;
    @Column(name = "CPF_CNPJ", length = 2147483647)
    private String cpfCnpj;
    @Column(name = "RG_IE", length = 2147483647)
    private String rgIe;

    public PessoaCliente() {
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getIdOperacaoFiscal() {
        return idOperacaoFiscal;
    }

    public void setIdOperacaoFiscal(Integer idOperacaoFiscal) {
        this.idOperacaoFiscal = idOperacaoFiscal;
    }

    public Integer getIdPessoa() {
        return idPessoa;
    }

    public void setIdPessoa(Integer idPessoa) {
        this.idPessoa = idPessoa;
    }

    public Integer getIdAtividadeForCli() {
        return idAtividadeForCli;
    }

    public void setIdAtividadeForCli(Integer idAtividadeForCli) {
        this.idAtividadeForCli = idAtividadeForCli;
    }

    public Integer getIdSituacaoForCli() {
        return idSituacaoForCli;
    }

    public void setIdSituacaoForCli(Integer idSituacaoForCli) {
        this.idSituacaoForCli = idSituacaoForCli;
    }

    public Date getDesde() {
        return desde;
    }

    public void setDesde(Date desde) {
        this.desde = desde;
    }

    public Date getDataCadastro() {
        return dataCadastro;
    }

    public void setDataCadastro(Date dataCadastro) {
        this.dataCadastro = dataCadastro;
    }

    public String getObservacao() {
        return observacao;
    }

    public void setObservacao(String observacao) {
        this.observacao = observacao;
    }

    public String getContaTomador() {
        return contaTomador;
    }

    public void setContaTomador(String contaTomador) {
        this.contaTomador = contaTomador;
    }

    public Character getGeraFinanceiro() {
        return geraFinanceiro;
    }

    public void setGeraFinanceiro(Character geraFinanceiro) {
        this.geraFinanceiro = geraFinanceiro;
    }

    public Character getIndicadorPreco() {
        return indicadorPreco;
    }

    public void setIndicadorPreco(Character indicadorPreco) {
        this.indicadorPreco = indicadorPreco;
    }

    public BigDecimal getPorcentoDesconto() {
        return porcentoDesconto;
    }

    public void setPorcentoDesconto(BigDecimal porcentoDesconto) {
        this.porcentoDesconto = porcentoDesconto;
    }

    public Character getFormaDesconto() {
        return formaDesconto;
    }

    public void setFormaDesconto(Character formaDesconto) {
        this.formaDesconto = formaDesconto;
    }

    public BigDecimal getLimiteCredito() {
        return limiteCredito;
    }

    public void setLimiteCredito(BigDecimal limiteCredito) {
        this.limiteCredito = limiteCredito;
    }

    public Character getTipoFrete() {
        return tipoFrete;
    }

    public void setTipoFrete(Character tipoFrete) {
        this.tipoFrete = tipoFrete;
    }

    public String getLogradouro() {
        return logradouro;
    }

    public void setLogradouro(String logradouro) {
        this.logradouro = logradouro;
    }

    public String getNumero() {
        return numero;
    }

    public void setNumero(String numero) {
        this.numero = numero;
    }

    public String getComplemento() {
        return complemento;
    }

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

    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 getCep() {
        return cep;
    }

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

    public Integer getMunicipioIbge() {
        return municipioIbge;
    }

    public void setMunicipioIbge(Integer municipioIbge) {
        this.municipioIbge = municipioIbge;
    }

    public String getUf() {
        return uf;
    }

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

    public String getFone() {
        return fone;
    }

    public void setFone(String fone) {
        this.fone = fone;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public Character getTipo() {
        return tipo;
    }

    public void setTipo(Character tipo) {
        this.tipo = tipo;
    }

    public String getEmail() {
        return email;
    }

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

    public String getSite() {
        return site;
    }

    public void setSite(String site) {
        this.site = site;
    }

    public String getCpfCnpj() {
        return cpfCnpj;
    }

    public void setCpfCnpj(String cpfCnpj) {
        this.cpfCnpj = cpfCnpj;
    }

    public String getRgIe() {
        return rgIe;
    }

    public void setRgIe(String rgIe) {
        this.rgIe = rgIe;
    }
    
}




erro apresentado pelo hibernate :

Caused by: org.postgresql.util.PSQLException: ERRO: coluna pessoaclie0_.cpf_cnpj não existe
John Lima

John Lima

Curtidas 0

Respostas

Ronaldo Lanhellas

Ronaldo Lanhellas

13/03/2015

Tenta mudar para "caixa baixa", assim:

   @Column(name = "cpf_cnpj", length = 2147483647)
    private String cpfCnpj;
GOSTEI 0
Ronaldo Lanhellas

Ronaldo Lanhellas

13/03/2015

Tenta mudar para "caixa baixa", assim:

   @Column(name = "cpf_cnpj", length = 2147483647)
    private String cpfCnpj;
GOSTEI 0
John Lima

John Lima

13/03/2015

apresenta o mesmo erro
GOSTEI 0
Ronaldo Lanhellas

Ronaldo Lanhellas

13/03/2015

Faça o seguinte teste, tire o "AS" da sua view, deixando direto assim:

P.EMAIL, P.SITE, PJ.CNPJ, PJ.INSCRICAO_ESTADUAL


Depois mude no mapeamento para:

  @Column(name = "cnpj", length = 2147483647)
    private String cpfCnpj;
    @Column(name = "inscricao_estadual", length = 2147483647)
    private String rgIe;
GOSTEI 0
John Lima

John Lima

13/03/2015

Ronaldo conseguir resolver o alias cpf_cnpj não poderia está dentro de " " ficando da seguinte maneira PF.CPF AS "CPF_CNPJ" -> PF.CPF AS CPF_CNPJ.
GOSTEI 0
Ronaldo Lanhellas

Ronaldo Lanhellas

13/03/2015

Certo, que bom que resolveu.
GOSTEI 0
POSTAR