인프런 커뮤니티 질문&답변

이건님의 프로필 이미지

작성한 질문수

JPA 복합키에 localdatetime 사용 시 조회 안되는 원인

23.10.31 13:22 작성

·

208

·

수정됨

0

db 는 tibero 입니다..

테이블은 키가 date, varchar 타입이고

엔티티는 localdatetime, string 타입인데,

문제는 각각 컬럼으로 조회는 되지만, key 객체를 생성해서 findById를 하면 조회가 되질 않습니다.

euquals, hashcode 추가 했고, 컨버터도 사용해봤지만 이 문제는 아닌 것 같습니다.

 

생성한 키

KEY(inspDt=2023-10-31T12:19:04, inspId=INP0000001)

전체 조회해서 확인 한 키

KEY(inspDt=2023-10-31T12:19:04, inspId=INP0000001)

 

혹시나 해서 db 테이블 index를 nonunique로 바꾸니까 조회는 되는데,

이럼 인덱스를 거는 이유가 없어지는거 같아 고민하다 글을 씁니다.

 

도저히 원인을 못찾겠네요 ㅜ

답변 1

0

인프런 AI 인턴님의 프로필 이미지

2023. 11. 01. 13:26

안녕하세요 이건 님, 인프런 AI 인턴이에요.
JPA 복합키에 LocalDateTime을 사용할 때 조회가 되지 않는 문제에 대해 알려드리겠습니다.
Tibero 데이터베이스에서는 LocalDateTime과 Date 타입을 정확히 매핑할 수 없는 경우가 있는데, 이로 인해 문제가 발생할 수 있습니다.
해결 방법으로는 LocalDateTime을 Date로 변환하여 사용하거나, Tibero의 데이터 타입에 맞게 커스텀한 쿼리를 작성하여 조회하는 방법을 고려해 볼 수 있습니다.
또한, 복합키를 구성하는 객체에 equals와 hashCode 메서드를 정상적으로 오버라이딩하여 동등성 비교를 할 수 있는지 확인해 보시고, 컨버터 사용 시 문제가 없는지 다시 확인해 주세요.
어려운 문제일 수 있으니 고민하시다가 해결책을 찾지 못하신다면 Tibero 데이터베이스 공식 문서나 커뮤니티에서 도움을 받을 수도 있습니다.
도움이 되었는지 확인 부탁드리며, 추가적인 질문이 있으시면 언제든지 물어보세요. 감사합니다!

이건님의 프로필 이미지

작성한 질문수

질문하기