我的“角色”实体 中有这种关系
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "persona")
private Empleado empleado;
在我的“ Empleado ”实体中,我有这种关系
@OneToMany(cascade = CascadeType.ALL, mappedBy = "empleado", fetch = FetchType.EAGER)
private Set<Trabajo> trabajos = new HashSet<Trabajo>();
我在我的“ Trabajo ”实体中有这种关系
@BatchSize(size = 100)
@OneToMany(cascade = CascadeType.ALL, mappedBy = "trabajo", fetch = FetchType.LAZY)
private Set<Atencion> atenciones = new HashSet<Atencion>();
而GoogleCode提供的这种登录方式
@Override
public Persona acceder(String login, String password) {
Search s = new Search();
s.addFilterEqual("usuario", login);
s.addFilterEqual("clave", password);
return searchUnique(s);
}
当我得到结果对象时,它已经加载了具有 EAGER fecth 的对象,除了在“ Trabajo ”实体中加载“ Atenciones ”集或者它具有 LAZY 提取之外,一切都很好。我怎样才能解决这个问题?
在我的 Trabajo 实体中,我还有其他 @OneToMany 关系具有 LAZY fetch 并且仍然加载我不知道为什么的对象。
当我使用 dozer mapperService 时,它会映射所有整个树对象,我可以看到所有不应该出现的对象。