티스토리 뷰
김영한님의 강의 내용 정리, 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
자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런
JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다. 초급 웹 개발 서버 데이터베이스 프레임워크 및 라이브러리 프로그래밍 언어 서비스 개발 Java JPA Spring Data JPA 온라인 강의 ORM, JPA, 자바, java, 우아한형제들
www.inflearn.com
실전! Querydsl
https://www.inflearn.com/course/Querydsl-%EC%8B%A4%EC%A0%84
- Total
- Today
- Yesterday
- 뱅크샐러드 유전자
- 이펙티브자바
- 몽고DB 완벽가이드
- 뱅크샐러드
- 싱글턴
- springboot https
- 업데이트 쿼리
- SpringBoot
- gradle
- 그레이들
- update set multiple
- 슬랙봇
- spring-boot-starter-data-redis
- multiple row update
- 뱅셀 유전자
- 이것이 자바다
- Slack
- effectivejava
- update query
- update query set multiple
- java
- update query mutiple row
- visual studio code
- MSSQL
- update query multi row
- vue.js
- 슬랙
- 슬랙 /
- 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 |