concat 같은 경우는 하이버네이트에서 || 으로도 지원한다.
String query = "select 'a' || 'b' from Member m";
String query = "select substring(m.username,2,3) from Member m";
// 2번째 문자부터 3개선택 -> dmi
substring 의 인자로는 대상, startIndex, length 로 구성된다. startIndex 부터 length 의 길이만큼 문자열을 잘라 반환한다. 현재 member 에 셋팅되어 있는 username 은 Admin 이므로 다음과 같이 출력된다.
만약 매개변수로 대상과 startIndex만 있을 시 startInex 에서부터 문자의 마지막까지 잘라 반환해준다.
String query = "select substring(m.username,2) from Member m";
//출력
s = dmin
member.setUsername(" Ad mi n ");
username 이 위와 같은 값을 가졌을때 trim 을 사용하면 다음과 같이 출력된다.
public class MYH2Dialecdt extends H2Dialect {
public MyH2Dialecdt() {
registerFunction("group_concat", new StandardSQLFuncdtion("group_concat", StandardBasicTypes.STRING)
}
}
persistence.xml
<property name = "hibernate.dialect" value="dialect.MYH2dialect"/>
그리고 실행 클래스에서 아래와 같이 사용하면 된다.