Я пытался написать поисковый запрос в спящем режиме. Я получил помощь из открытого кода исходного собрания.
Итак, мой запрос:
public User getAllUser(String search) {
String[] searchItems = search.split(" ");
try {
String sqlQuery = "SELECT * FROM USER u " + "WHERE u.deleted = 1 ";
sqlQuery += "AND ( ";
for (int i = 0; i < searchItems.length; i++) {
if (i != 0) {
sqlQuery += " OR ";
}
sqlQuery += "( " + "lower(u.last_name) LIKE '"
+ StringUtils.lowerCase("%" + searchItems[i] + "%")
+ "' " + "OR lower(u.first_name) LIKE '"
+ StringUtils.lowerCase("%" + searchItems[i] + "%")
+ "' " + "OR lower(u.username) LIKE '"
+ StringUtils.lowerCase("%" + searchItems[i] + "%")
+ "' " + ") ";
}
sqlQuery += " )";
log.debug("sqlQuery : " + sqlQuery);
Query query = sessionFactory.getCurrentSession().createQuery(
sqlQuery);
return (User) query.list().get(0);
} catch (HibernateException e) {
e.printStackTrace();
}
return null;
}
Там написано, что есть неожиданный токен, но я не нашел, где он.
Итак, у меня два вопроса:
- как сделать его работоспособным.
- как написать поисковый запрос с использованием критериев и проекций / ограничений в спящем режиме