반응형
이번에도 중요한 내용만 요약하며 복습용으로 올려봐야겠다!
맨날 mySQL로만 사용해보다가 이번에 처음 h2로 진행해보았다!
너무 신기했다~
그런데 mySQL과 정말 유사해서 빠르게 익숙해질 수 있었다.
- h2? In-memory DB의 대표 주자
- 인메모리 DB? 서버가 작동하는 동안에만 내용을 저장하고, 서버가 작동을 멈추면 데이터가 모두 삭제되는 데이터베이스
CommandLineRunnger!?
@Bean
public CommandLineRunner demo(CourseRepository repository){
return (args) -> {
List<Food> foodList = foodRepository.findAll(); // 그 후에 다 System.out.println
};
}
와 CommandLineRunner라는 건 처음 들어봤다.
이걸로 출력해보는데 너무 새로웠다.
Timestamped
솔직히 Timestamped를 사용하는 건 정말 중요하다고 생각한다.
이번에 한번 더 리마인드할 수 있는 좋은 기회였다고 생각한다.
Timestamped 파일
@MappedSuperclass // 상속했을 때 컬럼으로 인식하도록 한다.
@EntityListeners(AuditingEntityListener.class) // 생성/수정 시간을 자동으로 반영하도록 해야 한다(시간을 계속 들어주기)
사용 클래스에 이 파일을 extends 해주어야 하며
Application 클래스에
@EnableJpaAuditing을 붙여주어야 한다.
Service
// final: 서비스에게 꼭 필요한 녀석임 명시
private final MyRepository myRepository
// 생성자를 통해 Repository를 꼭 넣어주도록 알려준다.
public myService(MyRepository myRepository){
this.myRepository = myRepository;
}
@Transactional // SQL쿼리가 일어나야 함을 알려준다.
...
findById(id).orElseThrow( () -> new IllegalArgumentException("에러"); );
JPA를 사용해보면서 Service를 사용하고,
리마인드할 수 있는 좋은 기회였다.
어노테이션도 한번 더 짚고 넘어가고,
레퍼지토리의 핵심, 인터페이스도 짚고 넘어가서
필요한 내용은 다 들어가 있는 강의임을 한번 더 느꼈다!
DTO의 사용 이유, RequiredArgsConstructor, Lombok 등을 배우고,
간단한 API 제작 방법을 배웠다!
반응형
'백엔드' 카테고리의 다른 글
[스파르타코딩클럽]웹개발의 봄, Spring 4주차 개발일지 (0) | 2021.09.10 |
---|---|
[스파르타코딩클럽]웹개발의 봄, Spring 3주차 개발일지 (0) | 2021.09.10 |
[스파르타코딩클럽]웹개발의 봄, Spring 1주차 개발일지 (0) | 2021.09.10 |
Elastic Search#3 (0) | 2021.06.01 |
Elastic Search#2 (0) | 2021.05.31 |