<input>
, значение этого поля не отправляется на сервер вместе с другими данными формы. Таким образом, при отправке формы, поля с атрибутом disabled будут игнорироваться. <td>
<input readonly th:field="*{settings[__${item.index}__].name}">
</td>
IntStream
и вызываем у него метод range()
, который будет последовательно итерировать между диапазоном целых чисел (не включая верхнюю границу) с шагом приращения 1. В данном случае нам нужно пройтись по всей длине массива с нашими элементами, поэтому нижняя граница = 0, а верхняя граница равна длине массива (мы также могли бы использовать метод rangeClosed()
, который делает то же самое, но уже включает в себя верхнюю границу, тогда бы в качестве значения верхней границы мы бы указали list.length - 1
).filter()
для того, чтобы отсеять нужные нам данные, предикатом будет выступать целочисленное значение от значения нижней границы + количество уже совершенных итераций, что идеально подходит для последовательной итерации по нашему массиву и мы просто сравниванием наш адрес с текущим элементом массива, если возвращает true
- создает новый поток, который при обходе содержит элементы исходного потока, соответствующие заданному предикату.count()
.Pattern p = Pattern.compile("[0-9]+");
Matcher m = p.matcher("string1234(((more56))7))string890");
StringBuilder sb = new StringBuilder();
while (m.find()) {
sb.append(m.group());
}
System.out.println(sb.toString()); //1234567890
SELECT art, count(*) FROM Table GROUP BY art
map.entrySet().stream()
.collect(Collectors.groupingBy(
Map.Entry::getValue,
Collectors.minBy(Map.Entry.comparingByKey())
)
)
.entrySet().stream()
.collect(Collectors.toMap(
k -> k.getValue().get().getKey(),
Map.Entry::getKey));
Есть несколько способов обойти это:
1. Денормализация данных
Перенести важные для поиска элементы массива в отдельные поля/таблицы, которые можно будет индексировать.
2. Поиск в каждом элементе массива
Сделать это в MySQL можно с помощью JSON_UNQUOTE и JSON_EXTRACT функций:
3. Поиск среди конкатенированных значений
Вы можете попытаться создать виртуальную колонку, где все значения массива будут конкатенированы в строку. Это можно попробовать сделать средствами MySQL, но может быть нетривиально.
4. Использование другой СУБД
Другие СУБД, такие как PostgreSQL, предоставляют более широкие возможности для работы с JSON и JSONB, включая индексацию.
5. Приложение-посредник
Сделать поиск на уровне приложения, загрузив данные и проведя фильтрацию уже там.
Стоит заметить, что хотя можно использовать LIKE или REGEXP для выполнения частичного поиска в строке JSON, такие операции будут очень медленными на больших объемах данных. В зависимости от ваших требований один из перечисленных методов может быть более подходящим.