HQL-запрос на основе заданного содержимого - PullRequest
0 голосов
/ 28 марта 2011

У меня есть управляемый в спящем режиме POJO с набором:

public class Book {
    private Set<Page> pages;
    public Set<Page> getPages() { return pages; }
    public void setPages(Set<Page> pages) { this.pages = pages; }
}
public class Page {
    private int pageNumber;
    public int getPageNumber() { return pageNumber; }
    public void setPageNumber(int pageNumber) { this.pageNumber = pageNumber;
}

Как мне написать HQL-запрос на основе номера страницы?Например, вернуть все книги с номером страницы больше 100?

Не работает следующее:

from Book where pages.pageNumber > 100

Ответы [ 2 ]

0 голосов
/ 28 марта 2011

с использованием неявного соединения

из Книги b, где b.pages.pageNumber> 100

Это проще

0 голосов
/ 28 марта 2011

Использовать join:

select distinct b from Book b join b.pages p where p.pageNumber > 100

Без distinct будет возвращаться отдельный экземпляр Book для каждой страницы, удовлетворяющей условию.

См. Также:

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