Java jSF NamedQuery с использованием Int - PullRequest
1 голос
/ 18 апреля 2011

Я делаю поисковый запрос для целого числа.Это NamedQuery в классе Factuur:

@NamedQueries({
@NamedQuery(name = "getFactuurs", query = "SELECT f FROM Factuur f WHERE "
+ "f.periode LIKE :periode AND "
+ "f.carTracker.kenteken LIKE :carTrackerKenteken")

})

Таким образом, 'periode' является целым числом в классе Factuur, я пытался сделать это следующим образом:

    + "f.periode = :periode AND "

Я не получаю исключения, я просто ничего не получаю из базы данных, в то время как должно быть ...

1 Ответ

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

В разделе 4.6.9 спецификации JPA говорится, что оператор LIKE может применяться только к выражениям типа string:

Синтаксис использования оператора сравнения [NOT] LIKE в условном выражении следующий:

      string_expression [NOT] LIKE pattern_value [ESCAPE escape_character]

Выражение string_expression должно иметь строковое значение.

Кажется, не существует функции для преобразования целого числа в строку. Если вы запрашиваете диапазон, вам, вероятно, следует рассчитать нижнее и верхнее значения в вашем приложении и выполнить запрос с помощью выражения BETWEEN. Если вам нужно выполнить запрос с произвольными выражениями LIKE, то ваше поле должно иметь тип string.

...