SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME
LIMIT 1
;
LIMIT n: n개 제한
SELECT COUNT(*) AS USERS
FROM USER_INFO
WHERE YEAR(JOINED) = 2021
AND AGE BETWEEN 20 AND 29
| 함수 | 설명 | 예시 |
|---|---|---|
| YEAR(date) | 연도 추출 | YEAR('2023-05-10') → 2023 |
| MONTH(date) | 월 추출 | MONTH(JOINED) |
| DAY(date) | 일(day) 추출 | DAY(JOINED) |
| QUARTER(date) | 분기 추출 (1~4) | QUARTER('2023-07-10') → 3 |
| WEEK(date) | 주차 추출 | WEEK(JOINED) |
| HOUR(datetime) | 시 추출 | HOUR('2023-02-01 14:20:00') → 14 |
| MINUTE(datetime) | 분 추출 | 20 |
| SECOND(datetime) | 초 추출 | 00 |
SELECT COUNT(DISTINCT NAME) AS count
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
;
DISTINCT: 중복된 값을 제거하고 서로 다른 값만 조회하거나 계산할 때 사용
{
"timestamp": "2026-02-12T06:55:57.886Z",
"status": 400,
"error": "Bad Request",
"path": "/comments"
}
@PathVariable로 필터링하면 정상작동하는데 필터링 없이 하면 오류 발생
@RequestParam(required = false) Long profileId
여기에서 (required = false)가 빠져서 발생...
{
"calenderId": 1,
"title": "영화시청3",
"content": "3시에 cgv",
"profileId": 1,
"createdAt": "2026-02-12T15:43:51.240603",
"modifiedAt": "2026-02-12T15:43:51.240603",
"comments": [
{
"content": "뭐로 바꾸지",
"calender": {
"title": "영화시청3",
"content": "3시에 cgv",
"profile": {
"name": "robo",
"email": "robo@ex.com",
"password": "12345678",
"createdAt": "2026-02-12T15:43:40.023868",
"hibernateLazyInitializer": {},
"modifiedAt": "2026-02-12T15:43:40.023868",
"userId": 1
},
"calenderId": 1,
"comments": [
.
.
.
}
응답 dto에 엔티티 통채로 넣었더니 무한 반복 출력
public class GetSingleCalenderResponse {
private final List<GetCommentResponse> comments;
public GetSingleCalenderResponse(Calender calender) {
this.comments = calender.getComments()
.stream()
.map(GetCommentResponse::new)
.toList();
}
}
응답 dto에서 엔티티를 바로 반환하던것을 dto로 변형해서 반환
builder빌더 패터 구현법
빌더는 클래스 레벨에 붙이지 말아라
생성자 대용
테스트: ctrl shift T