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
을 추가해야 함