티스토리 뷰
반응형
반응형
김영한님의 강의 내용 정리, oracle dialect 상속 및 사용자 함수 추가
Dialect?
표준 SQL인 ANSI SQL외에, DBMS인 Oracle, MySQL, MS-SQL, PostgreSQL마다 문법과 함수가 조금씩 다른 경우가 있다.
이러한 SQL 표준을 지키지 않는 특정 벤더별 기능을 방언(Dialect)이라고 부른다.
ex)
MySQL | Oracle | |
가변 문자 | VARCHAR | VARCHAR2 |
문자열 자르기 | SUBSTRING() | SUBSTR() |
페이징 | LIMIT | ROWNUM |
기본키 할당 | AUTO_INCREMENT | SEQUENCE |
JPA는 특정 데이터베이스에 종속되지 않으며, 직접 SQL을 작성하고 실행하는 형태이기 때문에 별도 Dialect 설정을 해주면 JPA가 DBMS에 맞는 쿼리를 생성한다. 하이버네이트는 약 40가지 이상의 데이터베이스 방언을 지원한다.
Dialect 설정 방법(springboot 기준)
application.yml
spring :
jpa:
properties:
hibernate:
dialect : org.hibernate.dialect.Oracle10gDialect
#dialect : org.hibernate.dialect.H2Dialect
#dialect : org.hibernate.dialect.MySQL5InnoDBDialect
#dialect : org.hibernate.dialect.PostgreSQLDialect
#dialect : org.hibernate.dialect.SQLServerDialect
Custom Dialect
오라클 사용시, 자체 function을 호출하는 경우는 이러한 벤더별 방언을 상속받아서 구현하면 된다.
기본 function들은 쉽게 사용할 수 있도록 이미 구현되어 있다.
이렇게 상속한 dialect를 사용하려면, application.yml에 dialect 설정 값을 상속 받은 경로로 수정하면 된다.
spring :
jpa:
properties:
hibernate:
dialect : com.study.querydsl.config.MyOracleDialect
#dialect : org.hibernate.dialect.Oracle10gDialect
QueryDsl에서 function 호출
참고 :
자바 ORM 표준 JPA 프로그래밍 - 기본편
https://www.inflearn.com/course/ORM-JPA-Basic
실전! Querydsl
https://www.inflearn.com/course/Querydsl-%EC%8B%A4%EC%A0%84
반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 업데이트 쿼리
- MSSQL
- 슬랙봇
- update set multiple
- 뱅크샐러드 유전자
- gradle
- update query set multiple
- update query mutiple row
- springboot https
- visual studio code
- 이펙티브자바
- 뱅셀 유전자
- update query multi row
- 다중 업데이트
- 그레이들
- effectivejava
- SpringBoot
- vue.js
- multiple row update
- java
- 이것이 자바다
- update query
- 뱅크샐러드
- Slack
- 슬랙 /
- spring-boot-starter-data-redis
- 몽고DB 완벽가이드
- 슬랙
- 싱글턴
- update set multi
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함