Я хочу найти значение из объекта и преобразовать результат в список
Я попытался получить имя объекта данных «data» и хочу найти каждый элемент, имеющий «querytext». Как преобразовать данные объекта вСписок
public class SimpleMovieSearchService implements MovieSearchService {
@Autowired
private MovieDataService movieDataService;
@Override
public List<Movie> search(String queryText) {
MoviesResponse data =movieDataService.fetchAll();
List<Movie> result = data.stream() // problem in this line
.filter(item -> item.getTitle().equals("queryText"))
.collect(Collectors.toList());
return result;
}
}
MovieData.java
public class MovieData {
private String title;
private int year;
private List<String> cast;
private List<String> genres;
getter and setter
}
Movie.java
public class Movie {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
@ElementCollection(fetch = FetchType.EAGER)
private List<String> actors = new ArrayList<>();
getter and setter
}
edit
MovieResponse.java
public class MoviesResponse extends ArrayList<MovieData> {
}
MovieDataService.java
public interface MovieDataService {
MoviesResponse fetchAll();
}
Тип данных, которые я получилэто список MovieData, но я хочу, чтобы результат в List of Movie, как исправить тот или иной способ сделать.и без изменений ничего в Movie.java или MovieData.java
Обновление
Теперь я могу сделать таким образом
MoviesResponse a = movieDataService.fetchAll();
List<Movie> result = a.stream()
.map(movie -> new Movie(movie.getTitle()))
.filter(movie -> movie.getName().equals(queryText)) //this line
.collect(Collectors.toList());
, если данные "банан", "природа", "красный", а затем текст запроса "нет", я хочу результат"banana" и "nature" .in sql в ситуации, когда он может использовать "like". Как использовать "like" с этим фильтром?