sm 기술 블로그
[스프링부트] JPA 메소드 모음 본문
1) findAll()
DB에서 전체 값을 list로 불러올때 사용한다.
2) findOne()
primary key로 값을 1건 조회할 때 사용한다.
3) findByXX => SQL Where절이라고 생각하자.
findBy뒤에 우리가 정의한 Entity의 이름을 붙이면된다.
Entity의 이름의 첫글자는 대문자로 하며, id를 조건으로 검색한다면 findById(int id) 로 검색하면 된다.
여기서 여러개의 조건을 걸고싶다면...?
And조건
findByIdAndName(int id, String name)으로 And를 사용하여 검색한다.
OR 조건
findByIdOrName(int id, String name)으로 Or을 사용하여 검색한다.
4) Like / NotLike
like를 붙이면 인수에 지정된 텍스트를 포함하는 Entity를 검색한다.
=> SQL Like문
NotLike는 반대로 지정된 텍스트를 포함하지 않는 엔티티를 검색한다.
findByNameLike 라고 사용하게 된다면, name에서 인수의 텍스트를 검색한다.
5) StartingWith / EndingWith
값에서 지정된 텍스트로 시작하거나, 끝나는 값을 검색한다.
findByNameStartingWith("Bab") 이라면 이름이 Bab으로 시작하는 이름을 검색한다.
반대로 findByNameEndingWith("Bab")이라면 이름이 Bab으로 끝나는 이름을 검색한다.
6) IsNull / IsNotNull
값이 null이거나 null이 아닌 아이들을 검색한다.
예를들어 Name중에 null인 것들을 검색하려면...? => findByNameIsNull() 이렇게 사용하면 된다.
7) True / False
Boolean값으로 true/false인것을 검색한다.
예를들어 useYn이 true인 아이들을 검색하려면...? => findByUseYnTrue()로 검색하면 된다. 반대는 False()
8) Before / After
시간 기준으로 값을 검색한다.
예를 들어 createdDate가 현재보다 이전것을 검색하고 싶다면...? => findByCreatedDateBefore(new Date())로 검색할 수 있다.
9) LessThan / GreaterThan
숫자(값)를 기준으로 더 작은,큰 값을 검색한다.
에를들어 cnt가 20보다 작은것들을 검색하고 싶다면...? => findByCntLessThan(20)으로 검색할 수 있다.
10) Between
두숫자(값)의 사이에 있는 값을 기준으로 검색한다.
예를들어 cnt가 0부터 20까지 사이에 있는 값만 검색하고 싶다면...? => findByCntBetween(0,20)으로 검색할 수 있다.
시간도 사용가능하다
11) OrderBy
우리는 orderby를 자주 사용한다. jpa에서는 어떻게 사용해야 할까?
간단하다 메서드 명에 OrderBy검색할Entity명Asc/Desc(조건)을 사용하면 된다.
예를들어 cnt를 순서대로, 주소를 기준으로 뽑아오고 싶다면 findByAddressOrderByCnt(String address) 로 검색할 수있다.
12) countBy
SQL에서 count를 사용하는것과 같다.
결과의 count를 Return하는 메서드.
저장 메서드
1) save()
@RequestMapping("/doModify")
@ResponseBody
public String articleModify(@RequestParam Long id, String title, String body) {
Article article = articleRepository.findById(id).get();
if(article.getTitle() == null){
return "제목 없다.";
}
if(article.getBody() == null){
return "내용 없다.";
}
article.setTitle(title);
article.setBody(body);
articleRepository.save(article);
return "수정 됐다.";
}
레코드들을 저장할 때 사용한다.
insert() 와 update() 기능을 한다.
삭제 메서드
1) delete()
@RequestMapping("/doDelete")
@ResponseBody
public String articleModify(@RequestParam Long id) {
Article article = articleRepository.findById(id).get();
articleRepository.delete(article);
return "없어짐.";
}
레코드들을 삭제할 때 사용한다.
optional은 null이 있는지 확인하는 것임.
'스프링부트' 카테고리의 다른 글
[스프링 부트] 타임리프 URL (0) | 2022.07.10 |
---|---|
[스프링부트] CRUD (0) | 2022.07.09 |
[스프링부트] HttpSession (0) | 2022.07.02 |
[스프링부트] 로그인 여부 확인 | 권한 확인 (0) | 2022.07.02 |
[스프링부트] 로그인 | 로그아웃 구현 (0) | 2022.07.02 |