忽略一对多关系的相关实体的选择JPA查询是可能的吗?

时间:2012-06-25 17:23:37

标签: rest jpa one-to-many createquery

我是JPA的新手,如果我的问题看起来很基本,请原谅。 我有一个名为User的实体,它与其他实体的列表相关,如下所示:

@OneToMany(cascade = CascadeType.ALL , mappedBy = "user")
private List<session> sessionList;

在控制器类中,我以RESTFull方式定义了一个find方法,如下所示:

@GET
@Path("/Users")
@Produces("application/json")
public List<UserDevice> findAllUsers()
{
    return em.createQuery("SELECT u FROM User u").getResultList();
}

返回的结果包含正常用户的所有会话,但是虽然我只想检索用户的基本信息(所有简单列),但结果却很大。 我的问题是:是否可以忽略相关实体并保留实际实体的列?非常感谢你

1 个答案:

答案 0 :(得分:2)

除非您明确地将关联映射为急切加载(使用@OneToMany(fetch = FetchType.EAGER)),否则上述查询应仅返回用户的字段,并且不应加载其sessionList

如果加载了会话,则会将关联标记为急切加载,或者通过调用List<Session>的方法来懒惰地加载它们。