Как получить максимальное значение индекса потока - PullRequest
0 голосов
/ 10 февраля 2019

Я использую класс Entity, содержащий автоматически сгенерированное значение идентификатора, как показано ниже,

@Entity
@Table(name="BlogUser")
public class User {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column
    private Long id;

    @Column
    private String username;

Я пытаюсь получить максимальное значение id в классе User с интерфейсом JpaRepository.Это примеры кодов.

UserJpaRepository.findAll().stream().count();

Но эта строка возвращает единственное значение простого подсчета, а не максимальное значение значения идентификатора класса пользователя.Как я могу получить максимальное значение идентификатора в классе сущности пользователя с функцией потока?

1 Ответ

0 голосов
/ 10 февраля 2019

Вы можете найти его, используя Stream.max, например:

Long maxId = UserJpaRepository.findAll().stream()
    .map(User::getId) // mapping to id
    .max(Comparator.naturalOrder()) // max based on natural comparison
    .orElse(Long.MIN_VALUE); // if nothing element is mapped

или просто как

long maxId = UserJpaRepository.findAll().stream()
    .mapToLong(User::getId) // map to id
    .max() // find max
    .orElse(Long.MIN_VALUE);
...