1

我是 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();
}

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

4

1 回答 1

2

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

如果会话已加载,则关联被标记为急切加载,或者您通过调用List<Session>.

于 2012-06-25T17:40:40.013 回答