본문 바로가기

Spring

다양한 find 지원.

반응형

Repository가 기본적으로 제공하는 것은 id로 찾는 방식인데 email, account등 다양한 정보로 찾기 위해서는
UserRepository 내부에 Optional <User> findByAccount(String account); 등의 설정해 주면됨.

 

이렇게 하면 Test하는 쪽에서는 Repository를 사용하여 findByAccount를 사용 할 때, 반드시 Optional <User>로 받아야 함.

만약 UserRepository 내부에 User findByAccount(String account); 로 적어 주었다면 Test하는 쪽에서는 User로 받아야 함.

 

Optional은 ifPresent()같은 메소드를 지원하므로 편한 감이 있음.


JPA는 User 클래스 안에 지정된 변수에 대해서만 findBy제공.

 


User findFirstByPhoneNumberOrderByIdDesc(String phoneNumber);
//같은 여러개 중에 가장 최근의 것이 return 이중 Id로 역순.
//그니까 Id를 역순 정렬된 것 중에 가장 첫번째 니까 가장 마지막으로 지정된 폰넘버

 

여러개로 동시에 찾는법

Optional findByAccountAndEmail(String account,String email)

대문자 단위로 끊음

 

@Repository
public interface UserRepository extends JpaRepository<User,Long> {



//select * from user where account = ? <-test03
Optional<User> findByAccount(String account);


Optional<User> findByAccountAndEmail(String account, String email);
Optional<User> findByEmail(String account);





}

반응형

'Spring' 카테고리의 다른 글

@Configuration , @Create~ , @LastModified~  (0) 2019.11.14
연관 관계 설정.  (0) 2019.11.12
@OneToMany (fetch type) , @ManyToOne  (0) 2019.11.10
ERD  (0) 2019.11.10
@Autowired , Bean  (0) 2019.11.10