title: CrudRepository findAll() takes way to long - alternative? increase performance?
body: <p>In my controller im using the CrudRepository method findAll() to find all users in my Database like this:</p>
  
  <pre><code>userRepository.findAll()
  </code></pre>
  
  <p>The Problem is that in doing so it takes at leat 1.3 Minutes to load 1.500 users. From there i load the data in a model with Thymeleaf i show it in an html table: name,timecreated,email,id,packet and status of each user. Is there any way to increase performance or a way around to my problem?
  Any help would be really apreciated.</p>
  
  <p>Here´s my user entity </p>
  
  <pre><code>    @Id
      @SequenceGenerator(name = "user_id_generator", sequenceName = "user_id_seq", allocationSize = 1)
      @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "user_id_generator")
      private Long id;
      @Column(nullable = false, unique = true)
      private String email;
      @Column(name = "uuid", nullable = false, unique = true)
      private String uuid;
      @Column(name = "reset_pwd_uuid", unique = true)
      private String resetPwdUuid;
      @Column(nullable = false)
      private String password;
      @Enumerated(EnumType.STRING)
      @Column(nullable = false)
      private Status status;
      @Enumerated(EnumType.STRING)
      @Column(nullable = false)
      private Packet packet = Packet.BASE;
      @Enumerated(EnumType.STRING)
      @Column
      private Situation situation;
      @Column(nullable = false, name = "numberOfSomething")
      private Integer apples;
      @Column(nullable = false, name = "numberOfSomethingElse")
      private Integer oranges;
      @Column(name = "time_created")
      private Timestamp timeCreated;
  
      @OneToMany(mappedBy = "user", cascade = {CascadeType.REMOVE})
      @LazyCollection(LazyCollectionOption.FALSE)
      @OrderBy("rank ASC")
      private List&lt;Person&gt; person;
  
      @OneToMany(mappedBy = "user", cascade = {CascadeType.REMOVE})
      @LazyCollection(LazyCollectionOption.FALSE)
      @OrderBy("timeOccured ASC")
      private List&lt;History&gt; history;
  
      @OneToMany(mappedBy = "user", cascade = {CascadeType.REMOVE})
      @LazyCollection(LazyCollectionOption.FALSE)
      @OrderBy("id ASC")
      private List&lt;Invoice&gt; invoices;
  
      @OneToOne(mappedBy = "user", cascade = {CascadeType.REMOVE})
      private Building building;
  
      @OneToOne(mappedBy = "user", cascade = {CascadeType.REMOVE})
      private House house;
  
      @OneToOne(mappedBy = "user", cascade = {CascadeType.REMOVE})
      private Car car;
  
      @OneToOne(mappedBy = "user", cascade = {CascadeType.REMOVE})
      private Street street;
  
      @OneToOne(mappedBy = "user", cascade = {CascadeType.REMOVE})
      private Moreof moreof;
  
      @JoinColumn(name = "basedata_id", referencedColumnName = "id")
      @ManyToOne(cascade = {CascadeType.REMOVE})
      private Basedata basedata;
  
      @Column(name = "family")
      private String family;
  
      @Column(name = "unkle_mail")
      private boolean unkleMail;
  
      @Column(name = "vacation")
      private LocalDate vacationUntil;
  
      @Column(name = "ordered")
      private boolean ordered;
  
      @Column(name = "shipped")
      private boolean shipped;
  
      @Transient
      private boolean isEdit;
  
      @Transient
      private boolean one;
      @Transient
      private boolean two;
      @Transient
      private boolean three;
      @Transient
      private boolean four;
      @Transient
      private LocalDate regDate;
  
      @OneToMany(fetch = FetchType.EAGER, mappedBy = "user", cascade = CascadeType.REMOVE)
      private List&lt;Bed&gt; bed;
  </code></pre>