результирующий набор ограничений языка запросов java - PullRequest
0 голосов
/ 12 апреля 2011

Предположим, у меня есть следующие строки в таблице "mytable" id

1

2

3

... ...

500

и мой запрос похож на select m from mytable m where m.id < 300 как получить следующий вывод в том же порядке?

201

202

... ... ...

299

Я использую setMaxResult (100), но он возвращает мне вывод, подобный этому

1

2

... ...

100

любой совет?

Ответы [ 3 ]

2 голосов
/ 12 апреля 2011
String ql = "select m from mytable m where m.id < 300 order by m.id";
Query query = em.createQuery(ql);
query.setFirstResult(200);
query.setMaxResults(100);
1 голос
/ 12 апреля 2011

Вы можете использовать setFirstResult для определения начального индекса. Вместе с setMaxResult вы можете получить определенный диапазон.

0 голосов
/ 12 апреля 2011

Если вы принимаете около JPA, вы можете использовать order by.

Либо непосредственно в вашем запросе JPA:

select m from mytable m where m.id < 300 order by m.id

Или используя criteria:

CriteriaQuery<MyTable> q = cb.createQuery(MyTable.class);
Root<MyTable> c = q.from(MyTable.class);
q.select(c);
q.orderBy(cb.asc(c.get("id")));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...