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

기팝님의 프로필 이미지

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

JPQL 함수

사용자 등록함

21.11.25 00:23 작성

·

603

2

안녕하세요 사용자 등록함수중에 언급해주신

group_concat (이미 등록되어있는함수라고 말씀해주셨는데 찾을수가 없어서.. 여쭈어봅니다)

 

보시다시피 그냥 concat은 있는데

group_concat 이건 어디에 등록이 되어 있는건가요 ?

 

 

 

그리고 JPQL 스스로 함수를 정의할 수는 없습니다

라고 다른글에서 말씀해주셨는데

그러면  이렇게 따로 정의해서 만들 필요가 있나요?

답변 1

1

David님의 프로필 이미지

2021. 11. 25. 09:59

안녕하세요. 기팝님, 공식 서포터즈 David입니다.
.
Hibernate의 경우 특정 DB에 종속된 함수는 따로 제공하지 않습니다.

따라서 필요한 경우 특정 DB에 종속된 함수를 커스텀 함수로 등록하여 사용하셔야 합니다.

group_concat의 경우가 그렇습니다.

h2에서 제공하는 함수지만 hibernate에서는 제공하지 않습니다.

따라서 group_concat이라는 커스텀 함수를 방언에 추가하여 jpql에서 가져와 사용하는 것입니다.

또한 group_concat은 특정 DB(h2)에 종속된 함수이기 때문에 hibernate 패키지가 아닌 h2 패키지에서 찾으셔야 합니다.


.
감사합니다.

기팝님의 프로필 이미지
기팝
질문자

2021. 11. 25. 22:09

감사합니다.

아 근데 저렇게 종속된 함수를 쓰면

db를 바꾸면 에러가 터지겠네요 ??

David님의 프로필 이미지

2021. 11. 25. 22:25

확인하진 못했지만 그럴 것 같습니다.

기팝님의 프로필 이미지

작성한 질문수

질문하기