Как найти некоторые данные через много ID? - PullRequest
0 голосов
/ 21 января 2019

У меня есть тип массива идентификаторов.пример) Long id = [1, 3, 5] Тогда как найти данные, используя идентификатор типа массива?

Тип данных массива, не применимый к методу findById ().Так что я попробовал функцию петли.Но этот стиль не подходит для производительности, потому что он выполняет метод несколько раз для длины идентификатора.

Long id = [1, 3, 5];

for (int i = 0; i < id.length; i++) {
    repository.findById(id[i]);
}

Board Table

id |название |содержание

====================================

1 |A ... |А это ...

2 |Б ... |B есть ...

3 |C ... |C is ...

4 |Д ... |D is ...

5 |Э ... |E is ...

Я хочу получить тот же результат, используя метод JPA (НЕ Native Query Style) под запросом.

ВЫБЕРИТЕ заголовок, содержимое ИЗ ПЛАТЫ, ГДЕ id = 1, или id = 3, илиid = 5;

Результат

id |название |содержание

====================================

1 |A ... |А это ...

3 |C ... |C is ...

5 |Э ... |Е это ...

Ответы [ 2 ]

0 голосов
/ 21 января 2019

Если вы используете CrudRepository, вы можете использовать метод findAllById(Iterable<ID> ids), чтобы найти некоторые данные

String[] ids = new String[]{"1","2","3"};
Iterable<T> result = repository.findById(Arrays.asList(ids))
0 голосов
/ 21 января 2019

Вы можете использовать метод findByIdIn(List<Long> ids). Это метод JPA данных Spring для получения данных.

Ваш метод должен быть

List<Board> findByIdIn(List<Long> ids) в BaordRepository

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...