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

이건님의 프로필 이미지
이건

작성한 질문수

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

작성

·

240

·

수정됨

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

이건님의 프로필 이미지
이건

작성한 질문수

질문하기