jsf + rendered

28/01/2012

0

Eu tenho um aplicação onde eu seleciono em um <p:selectOneRadio> Pessoa Física e Jurídica e dái habilita e desabilita
os panelgrid dentro de um grupo. Esta opção está legal funciona direitinho o problema está na hora de salvar, onde
ele renderiza novamente deixando os valores nulos.Eu fiz um teste deixandio como Scoped e funciona mas possuo uma outra
tela que usa este BEan e ao usa da erro dizendo que não está na sessão,então eu usao como Reques mesmo. Eu poderia criar dois
Beans como escops difrentes mão creio que não é o certo. Com eu posso resolver. Segue abaixo um pedaço.
<h:panelGrid columns=3 id=linha1>
<h:outputLabel value=Data Cadastro for=data/>
<h:outputLabel value=Nome for=nome/>
<h:outputLabel value=Tipo for=tipoPessoa/>
<p:calendar readOnlyInputText=true id=data value=#{entidadeBean.selecionada.dataCadastro} mode=popup showOn=false popupIconOnly=true pattern=dd/MM/yyyy size=15/>
<p:inputText id=nome value=#{entidadeBean.selecionada.nome} required=true size=60 />
<p:selectOneRadio id=tipoPessoa value=#{entidadeBean.selecionada.tipoEntidade}>
<f:selectItem itemLabel=Fisíca itemValue=1/>
<f:selectItem itemLabel=Jurídica itemValue=2/>
<f:ajax event=change render=juridica fisica/>
</p:selectOneRadio>
</h:panelGrid>
<h:panelGroup id=fisica>
<h:panelGrid columns=3 id=linha2 rendered=#{entidadeBean.selecionada.tipoEntidade eq 1}>
<h:outputLabel value=Apelido for=apelido/>
<h:outputLabel value=CPF for=cpf/>
<h:outputLabel value=Rg for=rg/>
<p:inputText id=apelido value=#{entidadeBean.selecionada.apelido} required=true size=33 />
<p:inputMask id=cpf value=#{entidadeBean.cpf} required=true size=18 mask=999.999.999-99 />
<p:inputText id=rg value=#{entidadeBean.rg} required=true size=15/>
</h:panelGrid>
</h:panelGroup>
<h:panelGroup id=juridica>
<h:panelGrid columns=3 id=linha3 rendered=#{entidadeBean.selecionada.tipoEntidade eq 2}>
<h:outputLabel value=Nome Fantasia for=nomeFan/>
<h:outputLabel value=CNPJ for=cnpj/>
<h:outputLabel value=Incrição Estadual for=inscricaoEstadual/>
<p:inputText id=nomeFan value=#{entidadeBean.selecionada.apelido} required=true size=33 />
<p:inputMask id=cnpj value=#{entidadeBean.cnpj} required=true size=18 mask=99.999.999/9999-99 />
<p:inputText id=inscricaoEstadual value=#{entidadeBean.inscricaoEstadual} required=true size=15/>
</h:panelGrid>
</h:panelGroup>
Jose Boas

Jose Boas

Responder

Posts

28/01/2012

Robson Teixeira

no seu EL no caso #{entidadeBean.selecionada.tipoEntidade eq 1} não sei se o eq funciona corretamente eu usaria ==.Com relação ao seu SelectOneRadio vc deveria submete-lo na requisição assim

<p:selectOneRadio id=tipoPessoa value=#{entidadeBean.selecionada.tipoEntidade}>
<f:selectItem itemLabel=Fisíca itemValue=1/>
<f:selectItem itemLabel=Jurídica itemValue=2/>
<f:ajax event=change render=juridica fisica execute=@this/>
</p:selectOneRadio>

caso não queria somente o componente mas o panel ou o form todo basta informar no execute o id dos mesmos.
o @this significa que somente o componente tipoPessoa vai ser submetido.

espero ter ajudado.
att
robson
Responder

28/01/2012

Jose Boas

O problema não está ao clicar no SeletOneRadio, ele esta funcionando normalmente o problema é quando clica em salvar, eu mandei exibir os valores do panel=jurica e está nulo aí eu tirei o rendered=#{entidadeBean.selecionada.tipoEntidade==1}
e rendered=#{entidadeBean.selecionada.tipoEntidade==2}seixa só o panel = juridico sem o rendered para testar e funcionapu o valor nãó perde pelo que eu vi ao clicar em salvar ele excuta novamente o panelGroup e deixa nulo os valores. Eu fiz um teste usando o escopo de Visao e efunciona o problema é que eu nao sei trablhar bem com escopo de visao e uma outra tela ao chamar o metodo desta managedBean da erro.

ERROR org.hibernate.LazyInitializationException - failed to lazily initialize a collection of role: financeiro.usuario.Usuario.permissao, no session or session was closed
Eu poderia trabalhar como escopo de visão até quero mas eu preciso tratar este erro.
Responder

28/01/2012

Robson Teixeira

pra ajuda-lo o escopo de visão é ideal para trabalhar com requisições ajax.
ManagedBeans com escopo de view numa requisição ajax manten sua instancia normalmente(como se o escopo fosse Session).
Se a requisição não for ajax o escopo view cria sempre uma nova instancia(como se o escopo fosse Session).

com relação ao LazyInitializationException algo aconteceu que o seu EntityManager ou Session(se estiver usando Hibernate sem JPA) que está fechado e o hibernate tenta trazer os dados e não consegue geralmente pode ser de um atributo mapeado como Lazy.

espero ter ajudado.
Responder

28/01/2012

Jose Boas

É isso mesmo eu estou usando o hibernate, e a classe esta como lazy mesmo. A classe é a tabela entidade,
eu tenho uma tabela de categoria onde um pai se relaciona com vários filhos e uso FetchType.EAGER, neste caso
não tenho problema. Abaixo está o código da classe Categoria que funciona legal e depois a classe entidade
que da erro. Como eu posso resolver este problema ? Se puder me ajudar tá complicado para mim, eu estou a muito
temo enroscado nisso.
---------------------------------------------------
Categoria
---------------------------------------------------
@Entity
public class Categoria implements Serializable {

/**
*
*/
private static final long serialVersionUID = 2012480144613107499L;

@Id
@GeneratedValue
private Integer codigo;

@ManyToOne
@JoinColumn(name = categoria_pai, nullable = true)
@org.hibernate.annotations.ForeignKey(name = fk_categoria_categoria)
private Categoria pai;

@ManyToOne
@OnDelete(action=OnDeleteAction.CASCADE)
@JoinColumn(name = usuario)
@org.hibernate.annotations.ForeignKey(name = fk_categoria_usuario)
private Usuario usuario;

private String descricao;

private int fator;

@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.REMOVE)
@JoinColumn(name = categoria_pai, updatable = false)
@org.hibernate.annotations.OrderBy(clause = descricao asc)
private List<Categoria> filhos;

public Categoria() {
}

public Categoria(Categoria pai, Usuario usuario, String descricao, int fator) {
this.pai = pai;
this.usuario = usuario;
this.descricao = descricao;
this.fator = fator;
}

public Integer getCodigo() {
return codigo;
}

public void setCodigo(Integer codigo) {
this.codigo = codigo;
}

public String getDescricao() {
return descricao;
}

public void setDescricao(String descricao) {
this.descricao = descricao;
}

public Categoria getPai() {
return pai;
}

public void setPai(Categoria pai) {
this.pai = pai;
}

public Usuario getUsuario() {
return usuario;
}

public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}

public List<Categoria> getFilhos() {
return filhos;
}

public void setFilhos(List<Categoria> filhos) {
this.filhos = filhos;
}

public int getFator() {
return fator;
}

public void setFator(int fator) {
this.fator = fator;
}

@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((codigo == null) ? 0 : codigo.hashCode());
return result;
}

@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Categoria other = (Categoria) obj;
if (codigo == null) {
if (other.codigo != null)
return false;
} else if (!codigo.equals(other.codigo))
return false;
return true;
}
}
-------------------------------------------------
Entidade
------------------------------------------------
@Entity
@Table(name=entidade)
@SequenceGenerator(name=seq_entidade,sequenceName=seq_entidade)
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name=tipo_entidade,discriminatorType=DiscriminatorType.INTEGER)
@DiscriminatorValue(0)
public class Entidade implements Serializable {
/**
*
*/
private static final long serialVersionUID = 5643700050703782833L;

@Id
@GeneratedValue(generator=seq_entidade,strategy=GenerationType.AUTO)
private Integer codigo;

@ManyToOne
@JoinColumn(name=usuario,nullable=false)
@OnDelete(action=OnDeleteAction.CASCADE)
@ForeignKey(name=fk_entidade_usuario)
private Usuario usuario;
@Column(name=data_cadastro,nullable=false,updatable=false)
@Temporal(TemporalType.DATE)
private Date dataCadastro;
@Column(length = 60)
private String nome;
@Column(length = 20)
private String apelido;
@Column(length = 80)
private String endereco;
@Column(length = 30)
private String cidade;
@Column(length = 30)
private String bairro;
private Integer numero;
private String cep;
@Column(length = 40)
private String complemento;
@Column(length = 25)
private String fone;
@Column(length = 25)
private String celular;
@Column(length = 25)
private String fax;
private boolean ativo;
private String observacao;

@Column(name=tipo_entidade,insertable=false, updatable=false)
private Integer tipoEntidade;

public Integer getTipoEntidade() {
return tipoEntidade;
}

public void setTipoEntidade(Integer tipoEntidade) {
this.tipoEntidade = tipoEntidade;
}

public Integer getCodigo() {
return codigo;
}

public void setCodigo(Integer codigo) {
this.codigo = codigo;
}

public Date getDataCadastro() {
return dataCadastro;
}

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

public String getNome() {
return nome;
}

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

public String getEndereco() {
return endereco;
}

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

public String getCidade() {
return cidade;
}

public void setCidade(String cidade) {
this.cidade = cidade;
}

public String getBairro() {
return bairro;
}

public void setBairro(String bairro) {
this.bairro = bairro;
}

public Integer getNumero() {
return numero;
}

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

public String getCep() {
return cep;
}

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

public String getComplemento() {
return complemento;
}

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

public String getFone() {
return fone;
}

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

public String getCelular() {
return celular;
}

public void setCelular(String celular) {
this.celular = celular;
}

public String getFax() {
return fax;
}

public void setFax(String fax) {
this.fax = fax;
}

public boolean isAtivo() {
return ativo;
}

public void setAtivo(boolean ativo) {
this.ativo = ativo;
}

public String getObservacao() {
return observacao;
}

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

public String getApelido() {
return apelido;
}

public void setApelido(String apelido) {
this.apelido = apelido;
}

public Usuario getUsuario() {
return usuario;
}

public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}

@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((apelido == null) ? 0 : apelido.hashCode());
result = prime * result + (ativo ? 1231 : 1237);
result = prime * result + ((bairro == null) ? 0 : bairro.hashCode());
result = prime * result + ((celular == null) ? 0 : celular.hashCode());
result = prime * result + ((cep == null) ? 0 : cep.hashCode());
result = prime * result + ((cidade == null) ? 0 : cidade.hashCode());
result = prime * result + ((codigo == null) ? 0 : codigo.hashCode());
result = prime * result
+ ((complemento == null) ? 0 : complemento.hashCode());
result = prime * result
+ ((dataCadastro == null) ? 0 : dataCadastro.hashCode());
result = prime * result
+ ((endereco == null) ? 0 : endereco.hashCode());
result = prime * result + ((fax == null) ? 0 : fax.hashCode());
result = prime * result + ((fone == null) ? 0 : fone.hashCode());
result = prime * result + ((nome == null) ? 0 : nome.hashCode());
result = prime * result + ((numero == null) ? 0 : numero.hashCode());
result = prime * result
+ ((observacao == null) ? 0 : observacao.hashCode());
result = prime * result
+ ((tipoEntidade == null) ? 0 : tipoEntidade.hashCode());
result = prime * result + ((usuario == null) ? 0 : usuario.hashCode());
return result;
}

@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Entidade other = (Entidade) obj;
if (apelido == null) {
if (other.apelido != null)
return false;
} else if (!apelido.equals(other.apelido))
return false;
if (ativo != other.ativo)
return false;
if (bairro == null) {
if (other.bairro != null)
return false;
} else if (!bairro.equals(other.bairro))
return false;
if (celular == null) {
if (other.celular != null)
return false;
} else if (!celular.equals(other.celular))
return false;
if (cep == null) {
if (other.cep != null)
return false;
} else if (!cep.equals(other.cep))
return false;
if (cidade == null) {
if (other.cidade != null)
return false;
} else if (!cidade.equals(other.cidade))
return false;
if (codigo == null) {
if (other.codigo != null)
return false;
} else if (!codigo.equals(other.codigo))
return false;
if (complemento == null) {
if (other.complemento != null)
return false;
} else if (!complemento.equals(other.complemento))
return false;
if (dataCadastro == null) {
if (other.dataCadastro != null)
return false;
} else if (!dataCadastro.equals(other.dataCadastro))
return false;
if (endereco == null) {
if (other.endereco != null)
return false;
} else if (!endereco.equals(other.endereco))
return false;
if (fax == null) {
if (other.fax != null)
return false;
} else if (!fax.equals(other.fax))
return false;
if (fone == null) {
if (other.fone != null)
return false;
} else if (!fone.equals(other.fone))
return false;
if (nome == null) {
if (other.nome != null)
return false;
} else if (!nome.equals(other.nome))
return false;
if (numero == null) {
if (other.numero != null)
return false;
} else if (!numero.equals(other.numero))
return false;
if (observacao == null) {
if (other.observacao != null)
return false;
} else if (!observacao.equals(other.observacao))
return false;
if (tipoEntidade == null) {
if (other.tipoEntidade != null)
return false;
} else if (!tipoEntidade.equals(other.tipoEntidade))
return false;
if (usuario == null) {
if (other.usuario != null)
return false;
} else if (!usuario.equals(other.usuario))
return false;
return true;
}



}

Responder

28/01/2012

Jose Boas

É isso mesmo eu estou usando o hibernate, e a classe esta como lazy mesmo. A classe é a tabela Lancamento,
eu tenho uma tabela de categoria onde um pai se relaciona com vários filhos e uso FetchType.EAGER, neste caso
não tenho problema. Abaixo está o código da classe Categoria que funciona legal e depois a classe entidade
que da erro. Como eu posso resolver este problema ? Se puder me ajudar tá complicado para mim, eu estou a muito
temo enroscado nisso.

_______________________
Lancamento
_______________________
@Entity
@Table(name=lancamento)
@SequenceGenerator(name=seq_lancamento,sequenceName=seq_lancamento)
public class Lancamento implements Serializable {

/**
*
*/
private static final long serialVersionUID = 5402436410498537714L;

@Id
@GeneratedValue(generator=seq_lancamento,strategy=GenerationType.AUTO)
@Column(name=codigo)
private Integer lancamento;

@ManyToOne(fetch=FetchType.LAZY)
@OnDelete(action=OnDeleteAction.CASCADE)
@JoinColumn(name=usuario,nullable=false)
@ForeignKey(name=fk_lancamento_usuario)
private Usuario usuario;

@ManyToOne(fetch=FetchType.LAZY)-> é aqui que gera o erro, ao utilizar o método
@OnDelete(action=OnDeleteAction.CASCADE)
@JoinColumn(name=entidade,nullable=false)
@ForeignKey(name=fk_lancamento_entidade)
private Entidade entidade;

@ManyToOne(fetch=FetchType.LAZY)
@OnDelete(action=OnDeleteAction.CASCADE)
@JoinColumn(name=conta,nullable=false)
@ForeignKey(name=fk_lancamento_conta)
private Conta conta;

@ManyToOne(fetch=FetchType.LAZY)
@OnDelete(action=OnDeleteAction.CASCADE)
@JoinColumn(name=categoria,nullable=false)
@ForeignKey(name=fk_lancamento_categoria)
private Categoria categoria;

@Temporal(TemporalType.DATE)
private Date data;

private String descricao;

@Column(precision=10,scale=2)
private BigDecimal valor;

public Integer getLancamento() {
return lancamento;
}

public void setLancamento(Integer lancamento) {
this.lancamento = lancamento;
}

public Usuario getUsuario() {
return usuario;
}

public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}

public Conta getConta() {
return conta;
}

public void setConta(Conta conta) {
this.conta = conta;
}

public Categoria getCategoria() {
return categoria;
}

public void setCategoria(Categoria categoria) {
this.categoria = categoria;
}

public Date getData() {
return data;
}

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

public String getDescricao() {
return descricao;
}

public void setDescricao(String descricao) {
this.descricao = descricao;
}

public BigDecimal getValor() {
return valor;
}

public void setValor(BigDecimal valor) {
this.valor = valor;
}

public Entidade getEntidade() {
return entidade;
}

public void setEntidade(Entidade entidade) {
this.entidade = entidade;
}

@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ ((categoria == null) ? 0 : categoria.hashCode());
result = prime * result + ((conta == null) ? 0 : conta.hashCode());
result = prime * result + ((data == null) ? 0 : data.hashCode());
result = prime * result
+ ((descricao == null) ? 0 : descricao.hashCode());
result = prime * result
+ ((entidade == null) ? 0 : entidade.hashCode());
result = prime * result
+ ((lancamento == null) ? 0 : lancamento.hashCode());
result = prime * result + ((usuario == null) ? 0 : usuario.hashCode());
result = prime * result + ((valor == null) ? 0 : valor.hashCode());
return result;
}

@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Lancamento other = (Lancamento) obj;
if (categoria == null) {
if (other.categoria != null)
return false;
} else if (!categoria.equals(other.categoria))
return false;
if (conta == null) {
if (other.conta != null)
return false;
} else if (!conta.equals(other.conta))
return false;
if (data == null) {
if (other.data != null)
return false;
} else if (!data.equals(other.data))
return false;
if (descricao == null) {
if (other.descricao != null)
return false;
} else if (!descricao.equals(other.descricao))
return false;
if (entidade == null) {
if (other.entidade != null)
return false;
} else if (!entidade.equals(other.entidade))
return false;
if (lancamento == null) {
if (other.lancamento != null)
return false;
} else if (!lancamento.equals(other.lancamento))
return false;
if (usuario == null) {
if (other.usuario != null)
return false;
} else if (!usuario.equals(other.usuario))
return false;
if (valor == null) {
if (other.valor != null)
return false;
} else if (!valor.equals(other.valor))
return false;
return true;
}





}

___________________________
Categoria
___________________________
@Entity
public class Categoria implements Serializable {

/**
*
*/
private static final long serialVersionUID = 2012480144613107499L;

@Id
@GeneratedValue
private Integer codigo;

@ManyToOne
@JoinColumn(name = categoria_pai, nullable = true)
@org.hibernate.annotations.ForeignKey(name = fk_categoria_categoria)
private Categoria pai;

@ManyToOne
@OnDelete(action=OnDeleteAction.CASCADE)
@JoinColumn(name = usuario)
@org.hibernate.annotations.ForeignKey(name = fk_categoria_usuario)
private Usuario usuario;

private String descricao;

private int fator;

@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.REMOVE) -> aqui não dá erro.
@JoinColumn(name = categoria_pai, updatable = false)
@org.hibernate.annotations.OrderBy(clause = descricao asc)
private List<Categoria> filhos;

public Categoria() {
}

public Categoria(Categoria pai, Usuario usuario, String descricao, int fator) {
this.pai = pai;
this.usuario = usuario;
this.descricao = descricao;
this.fator = fator;
}

public Integer getCodigo() {
return codigo;
}

public void setCodigo(Integer codigo) {
this.codigo = codigo;
}

public String getDescricao() {
return descricao;
}

public void setDescricao(String descricao) {
this.descricao = descricao;
}

public Categoria getPai() {
return pai;
}

public void setPai(Categoria pai) {
this.pai = pai;
}

public Usuario getUsuario() {
return usuario;
}

public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}

public List<Categoria> getFilhos() {
return filhos;
}

public void setFilhos(List<Categoria> filhos) {
this.filhos = filhos;
}

public int getFator() {
return fator;
}

public void setFator(int fator) {
this.fator = fator;
}

@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((codigo == null) ? 0 : codigo.hashCode());
return result;
}

@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Categoria other = (Categoria) obj;
if (codigo == null) {
if (other.codigo != null)
return false;
} else if (!codigo.equals(other.codigo))
return false;
return true;
}
}
Responder

29/01/2012

Robson Teixeira

Na sua Classe Entidade você informa que vai existir uma coluna discriminatoria e essa coluna
está mapeada como atributo isso não poder o JPA vai da erro mesmo dizendo que não faz parte
da classe ou algo parecido.
segue as annotation retiradas da classe que você postou
////////
@DiscriminatorColumn(name=tipo_entidade,discriminatorType=DiscriminatorType.INTEGER)
@Column(name=tipo_entidade,insertable=false, updatable=false)
//////

diria para você remover o atributo com a annotation dizendo que é tipo_entidade.

e como está usando Herança sugiro fazer o seguinte seguir o exemplo abaixo.

@Entity
@DiscriminatorValue(value=1)
public class X extends Entidade{
// atributos é metodos comentados
}


a annotation @DiscriminatorValue diz qual será o valor da coluna de discriminação na Entidate.
Onde toda vez que for persistir um Object X a coluna de discriminação vai ser inserida com um no caso.

espero ter ajudado
att
robson
Responder

29/01/2012

Jose Boas

Eu acabei passando a entidade errado. NEste caso de descriminator está legal também já testei ninserção o problema na hora que eu chamo o método value=#{entidadeBean.entidadeSelect} />

<p:selectOneMenu id=entidade value=#{lancamentoBean.editado.entidade} effect=fade>
<f:selectItems value=#{entidadeBean.entidadeSelect} />
</p:selectOneMenu>

Bean
public List<SelectItem> getEntidadeSelect() {
if(this.entidadeSelect == null){
this.entidadeSelect = new ArrayList<SelectItem>();
ContextoBean contextoBean = ContextoUtil.getContextoBean();
EntidadeRN entidadeRN = new EntidadeRN(0);
List<Entidade> entidade = entidadeRN.listar(contextoBean.getUsuarioLogado());
SelectItem item = null;
for (Entidade enti : entidade){
item = new SelectItem(enti,enti.getApelido());
item.setEscape(false);
entidadeSelect.add(item);
}

}
return entidadeSelect;
}

---------
Classe Lancamento onde é mapeado a entidade
__________
private static final long serialVersionUID = 5402436410498537714L;

@Id
@GeneratedValue(generator=seq_lancamento,strategy=GenerationType.AUTO)
@Column(name=codigo)
private Integer lancamento;

@ManyToOne(fetch=FetchType.LAZY)
@OnDelete(action=OnDeleteAction.CASCADE)
@JoinColumn(name=usuario,nullable=false)
@ForeignKey(name=fk_lancamento_usuario)
private Usuario usuario;

@ManyToOne(fetch=FetchType.LAZY)
@OnDelete(action=OnDeleteAction.CASCADE)
@JoinColumn(name=entidade,nullable=false)
@ForeignKey(name=fk_lancamento_entidade)
private Entidade entidade;
Responder

29/01/2012

Jose Boas

Desconsidera o úttimo este eu coloquei com mais detalhes.

Eu acabei passando a entidade errado. NEste caso de descriminator está legal também já testei ninserção o problema na hora que eu chamo o método value=#{entidadeBean.entidadeSelect} />
Quandeo eu cico no botão novao onde eu cria as Classes sem problema o erro ocorre quando eu clicar em alterar e retorna o erro.[http-8082-3] ERROR org.hibernate.LazyInitializationException - failed to lazily initialize a collection of role: financeiro.usuario.Usuario.permissao, no session or session was closed

Método no xhtml lancamento
<p:selectOneMenu id=entidade value=#{lancamentoBean.editado.entidade} effect=fade>
<f:selectItems value=#{entidadeBean.entidadeSelect} />
</p:selectOneMenu>

ManagedBean Entidade onde está o método

public List<SelectItem> getEntidadeSelect() {
if(this.entidadeSelect == null){
this.entidadeSelect = new ArrayList<SelectItem>();
ContextoBean contextoBean = ContextoUtil.getContextoBean();
EntidadeRN entidadeRN = new EntidadeRN(0);
List<Entidade> entidade = entidadeRN.listar(contextoBean.getUsuarioLogado());
SelectItem item = null;
for (Entidade enti : entidade){
item = new SelectItem(enti,enti.getApelido());
item.setEscape(false);
entidadeSelect.add(item);
}

}
return entidadeSelect;
}

---------
Classe Lancamento onde é mapeado a entidade
__________
private static final long serialVersionUID = 5402436410498537714L;

@Id
@GeneratedValue(generator=seq_lancamento,strategy=GenerationType.AUTO)
@Column(name=codigo)
private Integer lancamento;

@ManyToOne(fetch=FetchType.LAZY)
@OnDelete(action=OnDeleteAction.CASCADE)
@JoinColumn(name=usuario,nullable=false)
@ForeignKey(name=fk_lancamento_usuario)
private Usuario usuario;

@ManyToOne(fetch=FetchType.LAZY)
@OnDelete(action=OnDeleteAction.CASCADE)
@JoinColumn(name=entidade,nullable=false)
@ForeignKey(name=fk_lancamento_entidade)
private Entidade entidade;
Responder

29/01/2012

Jose Boas

Uma coisa que reparei no erro acima é o seguinte quando eu tentro na tela de lancamento e gravo um lancamento antes de alterar funciona normal eu possso alterar quando eu quiser inclusive qualquer um, depois eu clica no menu Lancamento novante de propósito para dar um reload(como se entrasse pela primeira vez) na página e ao clicar no alterar dá erro.

641124 [http-8082-1] ERROR org.hibernate.LazyInitializationException - failed to lazily initialize a collection of role: financeiro.usuario.Usuario.permissao, no session or session was closed
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: financeiro.usuario.Usuario.permissao, no session or session was closed
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:380)
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:372)
at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:365)
at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:108)
at org.hibernate.collection.PersistentSet.equals(PersistentSet.java:429)
at financeiro.usuario.Usuario.equals(Usuario.java:185)
at financeiro.entidade.Entidade.equals(Entidade.java:317)
at financeiro.entidade.EntidadeJuridica.equals(EntidadeJuridica.java:51)
at org.primefaces.renderkit.SelectRenderer.isSelected(SelectRenderer.java:59)
at org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeOption(SelectOneMenuRenderer.java:258)
at org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeSelectItems(SelectOneMenuRenderer.java:239)
at org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeInput(SelectOneMenuRenderer.java:88)
at org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeMarkup(SelectOneMenuRenderer.java:65)
at org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeEnd(SelectOneMenuRenderer.java:41)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:879)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:308)
at com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:181)
at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:125)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1643)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:164)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1643)
at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:479)
at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:175)
at javax.faces.component.UIForm.visitTree(UIForm.java:341)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1487)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1487)
at com.sun.faces.context.PartialViewContextImpl.processComponents(PartialViewContextImpl.java:361)
at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:282)
at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:179)
at javax.faces.component.UIViewRoot.encodeChildren(UIViewRoot.java:968)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1643)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:378)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:127)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:117)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:135)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:311)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at financeiro.web.filter.ConexaoHibernateFilter.doFilter(ConexaoHibernateFilter.java:32)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:344)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:110)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:98)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:95)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:79)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:120)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:55)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:36)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:188)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:106)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:150)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
29/01/2012 13:43:47 com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback visit
GRAVE: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: financeiro.usuario.Usuario.permissao, no session or session was closed
Responder

29/01/2012

Jose Boas

Eu fiz um outro teste deixei o BEan da entidade como ViewScoped como eu queria , agora quando eu clica em alterar na tela de lancamento(lancamentoBEan que gerencia) não dá o erro mais, mas quando eu clica em salvar volta a dar o erro.

37713 [http-8082-4] ERROR org.hibernate.LazyInitializationException - failed to lazily initialize a collection of role: financeiro.usuario.Usuario.permissao, no session or session was closed
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: financeiro.usuario.Usuario.permissao, no session or session was closed
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:380)
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:372)
at org.hibernate.collection.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:119)
at org.hibernate.collection.PersistentSet.size(PersistentSet.java:162)
at java.util.AbstractSet.equals(Unknown Source)
at org.hibernate.collection.PersistentSet.equals(PersistentSet.java:430)
at financeiro.usuario.Usuario.equals(Usuario.java:185)
at financeiro.entidade.Entidade.equals(Entidade.java:317)
at financeiro.entidade.EntidadeFisica.equals(EntidadeFisica.java:43)
at javax.faces.component.SelectUtils.matchValue(SelectUtils.java:105)
at javax.faces.component.UISelectOne.validateValue(UISelectOne.java:149)
at javax.faces.component.UIInput.validate(UIInput.java:960)
at javax.faces.component.UIInput.executeValidate(UIInput.java:1204)
at javax.faces.component.UIInput.processValidators(UIInput.java:693)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1081)
at javax.faces.component.UIForm.processValidators(UIForm.java:240)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1081)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1081)
at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1159)
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:72)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at financeiro.web.filter.ConexaoHibernateFilter.doFilter(ConexaoHibernateFilter.java:32)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:344)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:110)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:98)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:95)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:79)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:120)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:55)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:36)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:188)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:106)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:150)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
29/01/2012 16:06:17 com.sun.faces.lifecycle.ProcessValidationsPhase execute
AVISO: failed to lazily initialize a collection of role: financeiro.usuario.Usuario.permissao, no session or session was closed
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: financeiro.usuario.Usuario.permissao, no session or session was closed
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:380)
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:372)
at org.hibernate.collection.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:119)
at org.hibernate.collection.PersistentSet.size(PersistentSet.java:162)
at java.util.AbstractSet.equals(Unknown Source)
at org.hibernate.collection.PersistentSet.equals(PersistentSet.java:430)
at financeiro.usuario.Usuario.equals(Usuario.java:185)
at financeiro.entidade.Entidade.equals(Entidade.java:317)
at financeiro.entidade.EntidadeFisica.equals(EntidadeFisica.java:43)
at javax.faces.component.SelectUtils.matchValue(SelectUtils.java:105)
at javax.faces.component.UISelectOne.validateValue(UISelectOne.java:149)
at javax.faces.component.UIInput.validate(UIInput.java:960)
at javax.faces.component.UIInput.executeValidate(UIInput.java:1204)
at javax.faces.component.UIInput.processValidators(UIInput.java:693)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1081)
at javax.faces.component.UIForm.processValidators(UIForm.java:240)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1081)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1081)
at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1159)
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:72)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at financeiro.web.filter.ConexaoHibernateFilter.doFilter(ConexaoHibernateFilter.java:32)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:344)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:110)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:98)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:95)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:79)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:120)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:55)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:36)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:188)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:106)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:150)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
javax.faces.FacesException: failed to lazily initialize a collection of role: financeiro.usuario.Usuario.permissao, no session or session was closed
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:80)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at financeiro.web.filter.ConexaoHibernateFilter.doFilter(ConexaoHibernateFilter.java:32)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:344)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:110)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:98)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:95)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:79)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:120)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:55)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:36)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:188)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:106)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:150)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
Caused by: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: financeiro.usuario.Usuario.permissao, no session or session was closed
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:380)
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:372)
at org.hibernate.collection.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:119)
at org.hibernate.collection.PersistentSet.size(PersistentSet.java:162)
at java.util.AbstractSet.equals(Unknown Source)
at org.hibernate.collection.PersistentSet.equals(PersistentSet.java:430)
at financeiro.usuario.Usuario.equals(Usuario.java:185)
at financeiro.entidade.Entidade.equals(Entidade.java:317)
at financeiro.entidade.EntidadeFisica.equals(EntidadeFisica.java:43)
at javax.faces.component.SelectUtils.matchValue(SelectUtils.java:105)
at javax.faces.component.UISelectOne.validateValue(UISelectOne.java:149)
at javax.faces.component.UIInput.validate(UIInput.java:960)
at javax.faces.component.UIInput.executeValidate(UIInput.java:1204)
at javax.faces.component.UIInput.processValidators(UIInput.java:693)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1081)
at javax.faces.component.UIForm.processValidators(UIForm.java:240)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1081)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1081)
at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1159)
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:72)
... 45 more
Responder

30/01/2012

Robson Teixeira

Na sua classe financeiro.usuario.Usuario tem um atributo chamado permissão que você tenta usar em algum lugar.
recomendo ver onde está sendo usando esse atributo e se possivel teste ele com eager para ver o comportamento de sua app.

trecho retirado do log de erro mais recente

37713 [http-8082-4] ERROR org.hibernate.LazyInitializationException - failed to lazily initialize a collection of role: financeiro.usuario.Usuario.permissao, no session or session was closed


espero ter ajudado
att
rosbon
Responder

30/01/2012

Jose Boas

Consegui resolver este problema eu mudei a annotation ForeignKey do jpa para a do hibernate @org.hibernate.annotations.ForeignKey(name = fk_entidade_usuario)funcionou , estou com um outro problema que ele não
atualiza o grid,mas isso eu vejo depois.
Responder

31/01/2012

Jose Boas

Alarme falso na verdade eu esqueci e incluir os hascode e o equals, o erro continua, mas vou da um olhada no que voce me mandou.
Responder

31/01/2012

Jose Boas

Não deu certo, mas eu mudei os Beans envolvidos para request aí não da erro. Eu andei lend algo creio que terei que mudar o filtro do Spring, mas terei que ler outra documentação.
Responder

31/01/2012

Jose Boas

Consegui resolver depois de uma semana e várias madrugadas. O que eu fiz eu andei lendo a documentação do hibernate e vi que era aceita eu deixar no Hascod e equals somente a chave, pois eu estou utilizando um conversor personalizado(para inserir e depois ler o valor do SelectItem) e era aí que estava dando o erro. Funcionou BLZ, está fumegando.

Obrigado pela atenção.
Responder

APRENDA A PROGRAMAR DO ZERO AO PROFISSIONAL

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar