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

+ Recent posts