본문 바로가기

Programming!

JPA ElementCollection

CollectionTable

- Table 명 지정.

- Collection Table의 주테이블 컬럼 명 지정. ( FK가 될 컬럼 )

- FK 제약은 제거

- 이경우 fk가 없으니 index 필요. 

- 인덱스 생성

- order by 컬럼 지정

- CollectionTable의 경우 Audit 불필요(주관적), Delete, Insert로 진행

    @ElementCollection(fetch = FetchType.LAZY)
    @CollectionTable(name = "memo_tag",
        joinColumns = [
            JoinColumn(name = "memo_id")
        ],
        foreignKey = ForeignKey(ConstraintMode.NO_CONSTRAINT),
        indexes = [
            Index(
                columnList = "memo_id",
                name = "idx_memo_tag_memo_id"
            )
        ]
    )
    @OrderBy("sort asc")
    var memoTags: MutableList<MemoTagEntity> = mutableListOf()

생성결과

https://github.com/KimHyeongi/spring-boot3-kotlin/blob/main/core/src/main/kotlin/com/tistory/eclipse4j/core/primary/memo/entity/MemoEntity.kt