Spring 기초
- JPA Auditing
ORM 기술(java에선 JPA)을 사용하여 도메인을 DB에 매핑해줄 때 자주 쓰이는 필드값이 존재하는데 대표적으로 생성시간, 수정시간 등이 있다. JPA에서는 이 생성시간, 수정시간을 자동으로 감시해주는 auditing 기능을 지원하는데. Entity가 생성된 시점 + Entity를 Dirty Checking한 후 update가 되는 시점을 자동으로 해당하는 테이블에 넣어준다.
@EnableJpaAuditing - auditing 활성화. 실행 클래스 (~~~application)에 넣어줘야한다.
@EntityListeners(AuditingEntityListener.class) - 해당 클래스에 auditing 기능을 포함시켜줌
@MappedSuperclass - 이 annotation이 있는 추상 클래스를 Entity 클래스가 상속받으면 추상 클래스의 멤버변수를 컬럼으로 인식.
위 세 annotation이 필수적이다.
- Query Method
메소드명만 잘 지어도 쿼리를 알아서 짜준다??
JpaRepository<Entity 클래스이름, PK 타입> 을 상속받아주면 쿼리 메소드를 사용할 수 있다.
public interface PostRepository extends JpaRepository<Post, Long> {}
findAllByOrderByModifiedAtDesc
findTop2ByName
findByNameEndingWith 등등이 있다. 자세한 건 공식 문서를....
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods
Spring Data JPA - Reference Documentation
Example 121. Using @Transactional at query methods @Transactional(readOnly = true) interface UserRepository extends JpaRepository { List findByLastname(String lastname); @Modifying @Transactional @Query("delete from User u where u.active = false") void del
docs.spring.io
알고리즘
- 프로그래머스 : 모음 사전(Level 2, 완전탐색, 중복순열)
느낀 점
오늘 특강에서 AOP 개념을 추상적으로 배웠다. 아 이러면 좋긴 하겠다 정도로 이해하고 나중에 구현하면서 장점을 이해해야겠구나 했었다. 그러나 갑자기 질문들에서 필터, 인터셉터 같은 개념들이 나옴 + 이 질문과 연관해서 프록시, 어드바이스 같은 개념들이 나오면서 모르는 단어들에 머리가 어질어질해졌다. 이해할 것만 이해하고 고수님들을 열심히 따라 잡아야지
'TIL' 카테고리의 다른 글
[23.11.10] (0) | 2023.11.10 |
---|---|
[23.11.09] (0) | 2023.11.09 |
[23.11.07] (1) | 2023.11.07 |
[23.11.06] (0) | 2023.11.06 |
[23.11.03] (1) | 2023.11.03 |