Я пытаюсь выбрать строки, в которых отношение один ко многим больше нуля.
т. Е. В 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