

SimpleJpaRepository이다. 이를 만들어서 Bean으로 등록시킨다.Optional을 받게 되면, 다음과 같이 코드를 짤 수 있다.private Memo findMemo(Long id) {
return memoRepository.findById(id).orElseThrow(() ->
new IllegalArgumentException("선택한 메모는 존재하지 않습니다.")
);
}
@Transactional(readOnly=true)@Transcactional이 붙어있으면 테스트가 끝나고 롤백됨롤백하기 싫으면 @Rollback(value=false)를 설정해주면 됨
@Test
@Transactional
@Rollback(value = false)
void test1(){...}
@Transactional@Transactional
public Long updateMemo(Long id, MemoRequestDto requestDto) {
// 해당 메모가 DB에 존재하는지 확인
Memo memo = findMemo(id);
// memo 내용 수정
memo.update(requestDto);
return id;
}



@PersistenceContext@PersistenceContext
EntityManager em;
@Getter
@MappedSuperclass // Entity 클래스의 상속 클래스를 의미
@EntityListeners(AuditingEntityListener.class)
public abstract class Timestamped {
@CreatedDate
@Column(updatable = false) // 업데이트 수정 불가
@Temporal(TemporalType.TIMESTAMP)
private LocalDateTime createdAt;
@LastModifiedDate
@Column
@Temporal(TemporalType.TIMESTAMP)
private LocalDateTime modifiedAt;
}updatable = false 옵션을 추가@SpringBootApplication 이 있는 class에 @EnableJpaAuditing 추가@EnableJpaAuditing 을 추가해야 함