Сравнивает ли в HQL строго или нет? - PullRequest
32 голосов
/ 25 февраля 2009

если я напишу на HQL

A between 5 and 10

эквивалентно

A >= 5 and A <= 10

или

A > 5 and A < 10

или какая-то другая из 4 комбинаций?

Ответы [ 2 ]

40 голосов
/ 25 февраля 2009

Я не нашел никакой спецификации поведения в документах Hibernate, но оператор between в HQL транслируется в оператор between в SQL, который является включающим.

Так что between в HQL тоже включительно, то есть

A between 5 and 10

эквивалентно

A >= 5 and A <= 10
3 голосов
/ 26 февраля 2009

очевидно, есть некоторая путаница по этому поводу. естественный язык предполагает, что он является эксклюзивным, но это не так. в действительности его A> = 5 и A <= 10. поскольку уже были даны противоречивые ответы (и исключены), необходимо внести дополнительные разъяснения: (от <a href="http://www.techonthenet.com/sql/between.php" rel="nofollow noreferrer">http://www.techonthenet.com/sql/between.php)

Example #1 - Numbers

The following is an SQL statement that uses the BETWEEN function:

SELECT *
FROM suppliers
WHERE supplier_id between 5000 AND 5010;

This would return all rows where the supplier_id is between 5000 and 5010, inclusive. It is equivalent to the following SQL statement:

SELECT *
FROM suppliers
WHERE supplier_id >= 5000
AND supplier_id <= 5010;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...