728x90
반응형
DB : MSSQL / SQL Server
data jpa 사용자 정의 함수 사용하기
#application.properties
spring.jpa.properties.hibernate.show_sql=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.dialect=com.smple.service.admin.hibernate.dialect.SQLServerDialect
-- 사용자 정의 함수가 정의된 dialect java 파일의 경로를 정의합니다
#Dialect
public class SQLServerDialect extends SQLServer2012Dialect {
public SQLServerDialect() {
super();
registerFunction("fn_functionName", new StandardSQLFunction("dbo.fn_functionName", StandardBasicTypes.STRING));
-- fn_functionName 사용자 정의 함수는 DB에서 정의
}
}
#Repogitory
@Query(value =
"SELECT c, cast(fn_functionName(c.cd) as string) AS code " +
"FROM entity c " +
"WHERE 1=1 " +
"AND c.created BETWEEN :startDate AND :endDate " )
Page<Object[]> findAllWithfnFunctionName(
@Param("startDate") LocalDateTime startDate,
@Param("endDate") LocalDateTime endDate,
Pageable pageable);
아래와 같이 error 발생하는 경우 #application.properties의 경로가 Dialect.java와 일치하는지 확인 필요
# 'fn_functionName'은(는) 인식할 수 없는 함수 이름입니다.
728x90
반응형
'공부의 > JAVA' 카테고리의 다른 글
[VSCODE] java.lang.NoClassDefFoundError 해결 방법 (0) | 2023.03.17 |
---|---|
[Spring Data JPA] jpql(@Query)이 동작하지 않을때, No property / Did you mean error (0) | 2023.03.09 |
[JPA] Specification 사용자 정의 함수 사용 (0) | 2023.03.07 |
JPA native Query count 방법 (0) | 2023.03.02 |