실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기

Ch02. Java 서버를 Kotlin 서버로 리팩토링하자 - Repository를 Kotlin으로 변경하기

webmaster 2022. 11. 1. 21:50
728x90

BookRepository

interface BookRepository : JpaRepository<Book, Long> {
    fun findByName(bookName: String): Optional<Book> //코틀린에서는 Optional이 필요 없다
}
  • 코틀린에서 상속은 : 연산자 뒤에 쓰면 된다.
  • Optional 같은 경우 코틀린에서 더 이상 사용하지 않아도 된다 (? 연산자를 사용하면 null을 허용하는 타입이 되기 때문)
    • 현재는 JAVA에서 그대로 사용하기 위해, Optional을 사용했다.

UserRepository


interface UserRepository : JpaRepository<User, Long> {
    fun findByName(name: String): Optional<User>
}

UserLoanHistoryRepository

interface UserLoanHistoryRepository : JpaRepository<UserLoanHistory, Long> {
    fun findByBookNameAndIsReturn(bookName: String, isReturn: Boolean): UserLoanHistory?
}
  • findByBookNameAndIsReturn 같은 경우 UserLoanHistory가 반환이 될 수도 되지 않을 수도 있기 때문에 ? 연산자를 사용해 null이 올 수 있다는 것을 표기한다(널 허용)
728x90