Oi galera, blz?
Eu to com um problema, segue.
Quando vou persistir um dado funciona perfeitamente meu fluxo…
Porem quando vou tentar alterar o fluxo da o seguinte erro:
27/09/2011 10:29:41 com.sun.faces.lifecycle.ProcessValidationsPhase execute
AVISO: failed to lazily initialize a collection, no session or session was closed
org.hibernate.LazyInitializationException: failed to lazily initialize a collection, no session or session was closed
Eu tenho um choice para esta anotacao: Para cada Alteracao eu posso ter N motivos
@JoinTable(name = “ALTERACAO_MOTIVO”, joinColumns = {
@JoinColumn(name = “alteracao”)}, inverseJoinColumns = {
@JoinColumn(name = “motivo”)})
@ManyToMany(cascade={CascadeType.MERGE, CascadeType.REFRESH, CascadeType.REMOVE})
@LazyCollection(LazyCollectionOption.TRUE)
@Fetch(FetchMode.SELECT)
private List motivos;
Quando mando salvar, claro, dou um update com JPA, mas estoura essa excecao!
O BREAKPOINT PASSA no getMotivos e lanca a excecao logo em seguida e DETALHE no GET nao pega as alteracoes do CHOICE e mantem o que vem no banco …
Essa excecao nao deveria vim, uma vez que, por essas anotacoes acima eu consigo ver os motivos, tanto que ja vem marcados para mim quais foram selecionados na persistencia!
Codigo que chama o GRAVAR:
<p:commandButton
ajax=“true"
action=”#{psAlteracaoServico.gravar}“
image=“save"
process=”@all"
update=”@form"
onclick="if(!window.confirm(‘Confirma o lançamento das informações ?’)){return false}"
value=“Gravar”
/>
XHTML:
<h:selectManyCheckbox converter=“entityConverter"
layout=“pageDirection"
label=“Motivo(s) para a viabilidade da solicitação"
required=“true"
value=”#{psAlteracaoServico.alteracao.motivos}”>
<f:selectItems value=”#{psAlteracaoServico.motivos}” />
</h:selectManyCheckbox>