프로그래밍 TIP/JPA

Entity 가 managed 상태인 경우 Entity 변경 후 별도로 save 할 필요가 없다.

여름나라겨울이야기 2021. 11. 17. 23:20
728x90
@Transactional
suspend fun increaseCount(id: Long): Article {
    val article = articleRepository.findById(id).orElseThrow {
        throw EntityNotFoundException("Not found article by id: $id")
    }

    article.count = article.count++

    // articleRepository.save(article) // 영속(managed)인 경우 Entity 변경 후 별도로 save 할 필요가 없다.

    return article
}

주의할 점
1. @Transactional 필수

2. @Transactional(readOnly = true)이면 안 된다.


@Transactional 이 없다면 artcleRepository.save(article) 를 호출해 줘야 한다.

반응형