Fala galera,
Bom dia.
Seria o problema abaixo um bug no hibernate? Porque o relacionamento está correto, pesquisei bastante sobre isso e em vários lugares o pessoa diz que isso é um bug e que para solucionar é preciso configurar um tal de instrumentation do hibernate, para que ele aceite o LAZY no relacionamento OneToOne com mappedBy.
Se você prestar atenção quando é feito o relacionamento conforme abaixo, sua consulta irá ignorar o LAZY do “Usuario” e se comportar como EAGER, isso é tão básico que não dá para acreditar, mas não consigo encontrar algo que resolva isso.
public class Usuario {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "cd_usuario")
private Long id;
@OneToOne(mappedBy="usuario", fetch=FetchType.LAZY)
private Endereco endereco;
}
public class Endereco {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "cd_endereco")
private Long id;
@OneToOne(fetch=FetchType.LAZY)
@JoinColumn(name="cd_usuario")
private Usuario usuario;
}
Se algum fera em hibernate puder ajudar eu vou agradecer muito porque isso pode prejudicar muito a performance quando eu precisar buscar uma lista de “Usuario”, porque para cada registro de usuário ele irá buscar o “Endereco” dele mesmo sem eu precisar, entende?
Outra coisa que não funciona no meu caso é o @Basic(fetch-FetchType.Lazy)… Em nenhum lugar que eu coloque isso não funciona.
Abraços.