반응형
Spring WebFlux로 프로젝트를 진행하던 중 unique index가 필요해서 다음과 같이 지정했었다.
@Document(collection = "Category")
data class CategoryDocument(
@Id
val id: ObjectId? = null,
@Indexed(unique = true, name = "category_name")
var name: String,
)
이렇게 @Indexed(unqie=true)로 설정하면 해당 column에 unique constraint가 적용되어야 한다.
하지만 같은 이름으로 계속 저장을 해봐도, 에러가 생기지 않았다.
문제의 원인을 찾아보니, MongoDB에서는 @Indexed로 지정하는 것 뿐만 아니라
Spring에서 MongoDB에 이런 제약 조건을 설정 할 수 있도록 application.yml에 다음과 같은 옵션을 추가해야 한다고 한다.
spring:
data:
mongodb:
auto-index-creation: false
이렇게 설정을 하고 MongoDB에서
db.Category.getIndexes()의 쿼리를 날려보니
이런 식으로 unique가 설정된 것을 볼 수 있었다.
'토이 프로젝트' 카테고리의 다른 글
Ubuntu에 Jenkins 설치하기 (0) | 2024.11.06 |
---|---|
Spring cloud gateway 적용하기 (0) | 2024.11.04 |
Spring WebFlux + AOP로 사용자 로그 남기기 (3) | 2024.10.26 |
코루틴 + WebFlux에 AOP 적용하여 session의 사용자 정보 로깅 (4) | 2024.10.25 |
WebFlux + session (1) | 2024.10.25 |