Как я могу Stream <GroupJson>и всю базу данных, используя JPA? - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь транслировать всю базу данных (около 22 000 записей) через Spring JPA. Используя метод FindAll (), я могу получить их, но все они сразу заносятся в память. Я хочу транслировать их.

Я пробовал streamAll ():

@Repository
public interface GroupJsonRepository extends CrudRepository<GroupJson, String> {
    Stream<GroupJson> streamAll();
}

но я получаю странную ошибку:

No property streamAll found for type GroupJson!

Мой объект:

@Entity
@Table(name = "GroupJson")
public class GroupJson {

    @Id
    private String id;

    private String hash;
    private String jsonData;
    private ZonedDateTime lastUpdatedTimeStamp;
...

Есть ли другой репозиторий, который я могу использовать, который делает это? Я могу только найти CrudRepository. ИЛИ, есть ли другие магические ключевые слова JPA, которые работают? Я использую Spring boot 1.5.9, и я передаю данные в другом месте, но я использую пользовательский вызов:

Stream<Authority> findByPartitionKey(Long partitionKey);

Ответы [ 2 ]

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

Вы должны включить часть «By» в объявление метода, чтобы Spring Data мог проанализировать имя вашего метода. Вот причина, почему вы получаете свою странную ошибку. Spring Data интерпретирует streamAll как свойство вашей сущности.

@Repository
public interface GroupJsonRepository extends CrudRepository<GroupJson, String> {
    Stream<GroupJson> streamAllBy();
}
0 голосов
/ 07 января 2019

Вы можете использовать запрос, если тоже,

@Query("select gj from Customer gj")
Stream<GroupJson> streamAll();
...