코드 그라데이션
리포지토리 @Query, Optional<>, Timestamp 본문
1.
메서드 이름 위에 @Query 가 안 붙으면 이것만 보고 추론을 해서 쿼리를 만드는 것이고,
컴파일 에러를 잡아주진 않지만, 실행할 때 이 쿼리를 만든 다음에 시작하기 때문에
그래도 애플리케이션이 동작하면서보단 켜자마자 에러가 발생하는 게 나으니까,
이런 면에서 더 좋다.
2.
Optional<> 은 원하는 걸 주거나 예외를 터뜨리거나
(매번 헷갈리는 내용...)
3. Timestamp 와 setStamp
등록시간과 수정시간이 중요한 경우가 있고,
등록자와 수정자가 중요한 경우가 있고,
어떤 건 다 중요한 경우가 있다.
즉, 어떤 테이블은 필요가 없을 수도 있다는 말이다.
더 많이 쓰는 것을 부모 클래스로 빼서 처리하자.
4. DB 설계에서
연관관계를 맺으면 여러 제약조건이 생기므로 지양하기도 한다.
5. 동시성 문제는
lock()을 이용해 해결하는 것이 일반적이다.
728x90
'Java, SpringBoot 추가 공부' 카테고리의 다른 글
엔티티 타입 vs 값 타입 (0) | 2024.03.17 |
---|---|
의존관계와 역전된 제어흐름, 스프링 어노테이션, 커스텀 어노테이션, 테스트 (0) | 2024.03.15 |
boolean과 Boolean의 차이 (0) | 2023.11.30 |
.orElseThrow에 대해 (0) | 2023.07.18 |
[Java] 클래스 배열(객체배열) 생성 예제 (0) | 2023.05.06 |
Comments