강의

멘토링

로드맵

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

기팝님의 프로필 이미지
기팝

작성한 질문수

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

JPQL 함수

사용자 등록함

작성

·

722

2

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

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

 

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

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

 

 

 

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

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

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

퀴즈

JPQL이 데이터베이스의 SQL과 가장 근본적으로 다른 점은 무엇일까요?

질의 대상

기본 문법의 유사성

데이터베이스 독립성 제공 여부

동적 쿼리 지원 방식

답변 1

1

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

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

group_concat의 경우가 그렇습니다.

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

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

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


.
감사합니다.

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

감사합니다.

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

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

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

기팝님의 프로필 이미지
기팝

작성한 질문수

질문하기