Код: Выделить всё
SELECT * FROM form_submission b where MATCH(business_name ,message) against('meet*' in boolean mode) != 0< /code> < /p>
Мое приложение основано на Spring-Boot, Spring-Data-jpa.
Я использую API спецификации, чтобы добавить условное, где к запросу . .against synatx. < /p>
Мой текущий код < /p>
public static Specification search(String searchText)
{
if (searchText == null || searchText.isEmpty())
{
return (root, query, criteriaBuilder) -> criteriaBuilder.conjunction();
}
String searchPattern = searchText + "*";
return (root, query, criteriaBuilder) ->
{
String customQuery = "MATCH(inquired_business_name ,message) AGAINST(" + searchPattern + " in boolean mode)";
return criteriaBuilder.notEqual(criteriaBuilder.literal(customQuery), "0");
};
}
< /code>
Я хочу объединить это два выражения. Это в одно выражение < /p>
Проблема-
для использования полного индекса поиска текста для MySQL для этого необходимо использовать совпадение .. против Synatx.
Я попробовал упомянутый выше код, но я получил это ниже запрос < /p>
select count(dptoleaddb0_.id) as col_0_0_ from b2b_dp_to_leaddb_mapping dptoleaddb0_ where ( dptoleaddb0_.rowstate -1) and dptoleaddb0_.business_fk=1 and (dptoleaddb0_.status in (? , ?)) and 1=1 and 1=1 and 1=1 and ??
Я передаю этот объект функции
Код: Выделить всё
"filterVO" :{
"status":"all",
"searchText":"Busi"
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... expression