Проверьте наличие пустой коллекции в Hibernate SQL, где условие - PullRequest
0 голосов
/ 11 сентября 2018

Я использую Hibernate для объединения столбцов между объектами, и я хочу объединить второй объект с объединенными столбцами и включать в себя только второй объект, где он имеет значения.

т.е. сущность 1 userSessionReports

@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "guide_id", updatable = false)
@LazyCollection(LazyCollectionOption.FALSE)
@Where(clause = "userResults IS NOT NULL OR userTracking IS NOT NULL")
private List<UserSessionReportDetail> userSessionReports = new ArrayList<UserSessionReportDetail>();

содержит эти 2 соединенных столбца

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

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

Я пытаюсь получить userSessionReports только там, где есть userResults или userTracking черезусловие «где».

Я пробовал

@Where(clause = "userResults IS NOT NULL OR userTracking IS NOT NULL")
@Where(clause = "userResults IS NOT EMPTY OR userTracking IS NOT EMPTY")
@Where(clause = "userResults.size() > 0 OR userTracking.size() > 0")

Ничего из этого не работает.

При попытке .size ()

появляется ошибка execute command denied to user 'webuser'@'%' for routine 'userresults.size' Какие-нибудь простые решения?

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