Bom dia
eu se que existe tópicos com esse problema mas não consigo resolver.
Tenho uma classe chamada UsuarioInterno como mostra abaixo:
@Entity
public class UsuarioInterno extends AbstractModelo implements Usuario {
public static final int LENGTH_USUARIO = 30;
public static final int LENGTH_NOME = 50;
public static final int LENGTH_SENHA = 32;
public static final int LENGTH_NIVEL = 50;
public static final int LENGTH_EMAIL = 255;
@Id
@Column(nullable=false, length=LENGTH_USUARIO)
private String usuario;
@Column(nullable=false, length=LENGTH_NOME)
private String nome;
@Column(nullable=false, length=LENGTH_SENHA)
private String senha;
@ElementCollection(fetch= FetchType.EAGER, targetClass=String.class)
@Column(length=LENGTH_NIVEL)
private Set<String> niveis;
@Column(nullable=false, length=LENGTH_EMAIL)
private String email;
private boolean ativo = true;
//get / set
}
E o meu sistema está utlizando EJB e o meu GenericDAO está assim
public abstract class GenericDAO<M extends Modelo> implements DAO<M> {
public static final String UNIT_NAME = "PU";
@PersistenceContext(unitName = UNIT_NAME)
//demais métodos
}
Todos os meus o dao UsuarioInternoDAOImpl está com Stateless, meu UsuarioInternoControllerImpl está Stateful e ViewScoped e quando tento gravar minha classe, quando o JSF tenta acessar a propriedade niveis, da o erro de LazyInitializationException.
A questão é que eu já tentei colocar o PersistenceContext como EXTENDED, já tentei colocar com @SessionScoped e não resolve o problema.
Alguém pode me dar uma luz?
ps: isso acontece também com @ManyToOne
