Фильтрация Spring
когда создаем запись с одинаковым названием и описанием, потом ищем по названию.
В выборке запись задваивается, можете помочь исправить фильтрацию

Часть контроллера
@PostMapping("filter")
public String filter(@RequestParam String filter, Model model)
{
List<Post> result1 = postRepository.findByTitleContaining(filter);
List<Post> result2 = postRepository.findByMtextContaining(filter);
List<Post> orResult = new ArrayList<>();
orResult.addAll(result1);
orResult.addAll(result2);
model.addAttribute("posts", orResult);
return "notes";
}
Класс интерфейса
package com.IK.notes.Repo;
import com.IK.notes.Models.Post;
import org.springframework.data.repository.CrudRepository;
import java.util.List;
public interface PostRepository extends CrudRepository <Post, Long>
{
List<Post> findByTitleContaining(String title);
List<Post> findByMtextContaining(String mtext);
}
Ответы (2 шт):
В интерфейсе объявляете метод, чтобы осуществить выборку по полям title и mtext:
List<Post> findByTitleContainingAndMtextContaining(String title, String mtext);
И в своем контроллере вызываете:
List<Post> result = postRepository.findByTitleContainingAndMtextContaining(title, mtext); model.addAttribute("posts", result);
Правда учтите, что Containing работает как оператор LIKE в запросе. Если нужно полное соответствие, то Containing опускаем:
List<Post> findByTitleAndMtext(String title, String mtext);
Решил
@PostMapping("filter")
public String filter(@RequestParam String filter, Model model)
{
List<Post> result = postRepository.findByTitleContainingOrMtextContaining(filter, filter);
model.addAttribute("posts", result);
return "notes";
}
}



