忽略 FetchType.EAGER 在关系中
我在大型应用程序中对EAGERs的关系有问题。此应用程序中的某些实体与其他实体有关联。这在某些功能中成为“毒药”。EAGER
现在,我的团队需要优化此功能,但我们不能将 fetch 类型更改为 LAZY,因为我们需要重构整个应用程序。
那么,我的问题是:有没有办法执行特定的查询,忽略我返回的实体中的EAGERs关联?
示例:当一个我有这个实体的人,我想不带地址列表,当我做一个查询来查找一个人。
@Entity
public class Person {
@Column
private String name;
@OneToMany(fetch=FetchType.EAGER)
private List<String> address;
}
Query query = EntityManager.createQuery("FROM Person person");
//list of person without the address list! But how???
List<Person> resultList = query.getResultList();
谢谢!
更新
我发现的唯一方法是不返回实体,只返回实体的某些字段。但我想找到一个可以返回实体的解决方案(在我的示例中,是实体)。Person
我在想是否可以在Hibernate中映射同一个表两次。通过这种方式,我可以在没有 EAGER 关联的情况下映射同一个表。这将在一些情况下帮助我...