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 |