***************************** File Main ***************************** for (theUser in userService.getUsersByClassification("Class 1", pageNr = 0, pageSize = 10)) { println(theUser.displayName) } ***************************** File UserService ***************************** @Service class UserService @Autowired constructor(private val userPaging: UserPagingAndSortingRepository) { fun getUsersByClassification(classification: String, pageNr: Int, pageSize: Int): Page<User> { val pageable: Pageable = PageRequest.of(pageNr, pageSize) return userPaging.findByClassification(classificatie, pageable) } } ***************************** File UserPagingAndSortingRepository The Query annotation is JPQL, but in the case of JPA Hibernate, can also be HQL. ***************************** interface UserPagingAndSortingRepository : PagingAndSortingRepository<User, Long> { @Query("SELECT u FROM User u JOIN u.userExtradata um WHERE um.classification = :classification") fun findByClassification(@Param("classification") classification: String, pageable: Pageable): Page<User> } ***************************** File entity.User ***************************** @Entity @Table(name = "\"user\"") class User { @Id var id: Long = 0; @Column (name="display_name") var displayName: String = "" @OneToOne(mappedBy = "user", cascade = [CascadeType.ALL], fetch = FetchType.LAZY) val userExtradata: UserExtradata? = null } ***************************** File entity.UserExtradata ***************************** @Entity @Table(name = "\"user_extradata\"") class UserExtradata { @Id var user_id: Long = 0; var classification: String = "" var phonenumber: String? = "" @OneToOne @JoinColumn(name = "user_id", referencedColumnName = "id") val user: User? = null }
woensdag 29 januari 2025
Easy pagination with Spring JPA - Hibernate
Abonneren op:
Reacties posten (Atom)
Geen opmerkingen:
Een reactie posten