fetchType EAGER não está funcionando

0 respostas
d34d_d3v1l

Galera,

tenho uma classe com a seguinte anotação na classe Mensagem:

@Any(metaColumn = @Column(name = "tipo_autenticavel"), optional = false, fetch=FetchType.EAGER	)
	@AnyMetaDef(idType = "integer", metaType = "string", metaValues =
	{
			@MetaValue(value = "A", targetEntity = Aluno.class),
			@MetaValue(value = "P", targetEntity = Professor.class),
			@MetaValue(value = "F", targetEntity = Funcionario.class) })
	@JoinColumn(name = "codigo_autenticavel")
	private Autenticavel remetente;

Quando eu faço, vejam no comentario onde dá erro:

for(Mensagem m : mensagens){
			Autenticavel a = m.getRemetente(); //ok 

			if(a instanceof Aluno){
				System.out.println("ALUNO");
			}
			if(a instanceof Professor){
				System.out.println("PROFESSOR");
			}
			if(a instanceof Funcionario){
				System.out.println("FUNCIONARIO");
			}
			
                       //todos esses IFs acima, ok.. ele identifica qual o tipo da interface.

			System.out.println(a.getId());  //ERRO AQUI
			System.out.println(a.getType());
			
			if(m.getRemetente().getId() == this.getId() && m.getRemetente().getType() == this.getType() ){
				msgs.add(m);
			}
		}

A mensagem de erro é:

Caused by: org.hibernate.LazyInitializationException: could not initialize proxy - no Session

podem ajudar?

Criado 23 de junho de 2012
Respostas 0
Participantes 1