Возможен ли выборочный запрос JPA, который игнорирует связанные сущности отношения один-ко-многим?
Я новичок в JPA, так что извините, если мой вопрос кажется основным. У меня есть объект с именем User, который связан со списком других объектов, таких как:
@OneToMany(cascade = CascadeType.ALL , mappedBy = "user")
private List<session> sessionList;
В классе контроллера я определил метод find методом RESTFull следующим образом:
@GET
@Path("/Users")
@Produces("application/json")
public List<UserDevice> findAllUsers()
{
return em.createQuery("SELECT u FROM User u").getResultList();
}
Возвращенный результат содержит все сеансы пользователей, что является нормальным, но делает результат огромным, хотя я просто хочу получить основную информацию о пользователях (все простые столбцы). Мой вопрос: возможно ли игнорировать связанные сущности и просто сохранить столбцы фактической сущности? большое спасибо
1 ответ
Если вы явно не сопоставите ассоциацию как загруженную (используя @OneToMany(fetch = FetchType.EAGER)
), приведенный выше запрос должен возвращать только поля пользователей и не должен загружать их sessionList
,
Если сеансы загружены, то ассоциация помечается как загруженная с нетерпением, или вы загружаете их лениво, вызывая метод List<Session>
,