Método da action ServiceOrderAction que da o erro failed to lazily initialize a collection of role: jpa.ServiceOrder.devices, no session or session was closed
public String print() {
serviceOrder = serviceOrderDAO.find(serviceOrderID);
return "print";
}
retirei o EXTENDED e acrescentei no web.xml o código abaixo que está com o comentário OpenEntityManagerInViewFilter, daí o erro voltou failed to lazily initialize a collection of role: jpa.ServiceOrder.devices, no session or session was closed…
[quote=Leozin][quote=Leonardo3001]Não use PersistenceContextType.EXTENDED fora de um Stateful Session Bean do EJB!!!
A idéia do extended é o gerenciador do EJB fechar o contexto automaticamente. Mas fora do EJB, ninguém fechará, nem o Spring fará isso.
[/quote]
Onde você viu isso?
EDIT: quando tentei usar o OpenSessionInView não tinha funcionado :([/quote]
Seguinte, eu passei por esse mesmo problema há um mês atrás. E sabia há muito tempo que só se poderia usar EXTENDED em Stateful Session Bean, não em Stateless Session Bean. Pois bem, mas e fora do EJB, como o Spring? Dei uma bela googlada e encontrei esses comentários no fórum do Spring: http://forum.springframework.org/archive/index.php/t-27430.html .
São perguntas que ultrapassam um ano e que não responde à pergunta: “o Spring vai fechar o PersistenceContext quanto se usa extended?”. Outra, porque o Spring possui o Filtro OpenEntityManagerInViewFilter? Será que é porque não há suporte eficaz ao EXTENDED?
Com isso, ligando o excesso de interrogações do fórum mais a existência desse filtro, fiquei na opção “precavido” e assumi que o EXTENDED nunca será fechado e que deve ser evitado.
Um problema que o Spring quando usa o EXTEND é que, como pelo jeito ele não fecha mesmo, quando você insere dados no teu banco de dados enquanto o contexto está aberto, esses dados que foram inseridos “na mão” não são carregados quando você faz por exemplo, um select
Estou com o mesmo problema de Lazy, mas aqui já estou usando o OpenEntityManagerInViewFilter no meu web.xml e ele está no começo da definição dos filtros.