Я использую 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'
Какие-нибудь простые решения?