Сравнивает ли между в HQL строго или нет?

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

A between 5 and 10

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

A >= 5 and A <= 10

или

A > 5 and A < 10

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

Ответов (2)

Решение

I didn't find any specification of the behavior in the Hibernate docs, but the between operator in HQL is translated to the between operator in SQL, which is inclusive.

So between in HQL is also inclusive, that is

A between 5 and 10

is equivalent to

A >= 5 and A <= 10

очевидно, что здесь есть некоторая путаница. естественный язык предполагает, что это эксклюзивно, но это не так. на самом деле это A> = 5 и A <= 10. поскольку уже были даны противоречащие друг другу ответы (и они были отклонены), необходимо больше разъяснений: (из 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;