Фильтр Java SQL по размеру реляционной таблицы - PullRequest
0 голосов
/ 27 июня 2019

Я пытаюсь выбрать строки, в которых отношение один ко многим больше нуля.

т. Е. В SQL

query = sessionFactory.getCurrentSession().createQuery(
        "FROM UserSessionReport usr WHERE usr.userId = :userId 
         AND usr.userTracking.size > 0 ORDER BY created DESC");

И объединение таблицы Hibernate

@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "user_session_id", updatable = false)
@LazyCollection(LazyCollectionOption.FALSE)
private List<UserTracking> userTracking = new ArrayList<UserTracking>();

Это делает запрос очень медленным, т. Е. Загрузка занимает 30 секунд.

Есть ли другой способ оптимизировать его, чтобы он возвращал только те строки, где usr.userTracking.size > 0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...