반응형
PK가 2개 인 test 테이블을 만들었습니다.
CREATE TABLE test (
test_id varchar(20) NOT NULL,
mber_id varchar(20) NOT NULL,
cre_date datetime NOT NULL,
mod_date datetime NULL,
PRIMARY KEY (test_id, mber_id)
);
PK는 따로 data class로 만들어 줍니다.
import java.io.Serializable
import javax.persistence.Embeddable
@Embeddable
data class TestEntityPK(var testId: String,
var mberId: String): Serializable
test 테이블 data class.
import lombok.Getter
import lombok.Setter
import java.time.LocalDateTime
import javax.persistence.Entity
import javax.persistence.EmbeddedId
@Getter
@Setter
@Entity
data class TestEntity(@EmbeddedId
var id: TestEntityPK,
var creDate: LocalDateTime,
var modDate: LocalDateTime?)
Repository 구성
import org.springframework.data.jpa.repository.JpaRepository
interface TestRepository: JpaRepository<TestEntity, TestEntityPK> {
fun findByIdTestId(testId: String): List<TestEntity>?
}
사용 법
@Autowired
lateinit var testRepository: TestRepository
fun getTestId(testId: String): List<TestEntity>? {
return testRepository.findByIdTestId(testId: String)
}
fun save(testId: String, mberId: String) {
testRepository.save(TestEntity(TestEntityPK(testId, mberId), LocalDateTime.now()))
}
반응형
'skill > Java.Kotlin' 카테고리의 다른 글
[SpringBoot] Completed 405 METHOD_NOT_ALLOWED Error 해결 (0) | 2021.06.12 |
---|---|
JPA PK 자동 증가일 경우, 등록 방법 (0) | 2021.05.12 |
[Kotlin] LocalDateTime 날짜 형식 변경 (DateTimeFormatter) (0) | 2021.05.12 |
LocalDateTime 일 수 계산 (0) | 2021.05.12 |
Spring Boot JPA Paging 처리 _ Kotlin (0) | 2021.05.12 |