2015-09-10 2 views
1

Я пытаюсь получить отдельный список первых символов определенного поля, но hibernate возвращает следующую ошибку.Hibernate createSQLQuery не принимает левую функцию

org.hibernate.hql.internal.ast.QuerySyntaxException: 
unexpected token: LEFT near line 1, column 17 [Select DISTINCT LEFT(name,1) 

Код

Query query = sessionFactory 
       .getCurrentSession() 
       .createSQLQuery(
         "Select DISTINCT LEFT(name,1) from Name 
         WHERE age = :age"); 
query.setParameter("age", age); 
return query.list(); 

Я нашел answer, что не помогло.

Ожидаемый результат

Если я ищу 12 лет, он должен возвращать первый символ имена, возраст которых значение 12, например: а, б, е, ж, к, л, г

ответ

1

Используйте вместо этого подстроку.

Select DISTINCT SUBSTRING(name, 1, 1) from Name WHERE age = :age 
Смежные вопросы