반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 자료구조공부
- 플러터 개발
- nestjs공부
- JPA예제
- 스프링
- 스프링부트공부
- 스프링 공부
- 알고리즘공부
- 스프링공부
- K8S
- 기술면접공부
- 기술공부
- 코테준비
- nestjs
- nestjs스터디
- JPA스터디
- 프로그래머스
- Axon framework
- Flutter
- 코테공부
- JPA
- JPA공부
- 플러터 공부
- querydsl
- Kafka
- 자바공부
- 스프링부트
- JPA 공부
- DDD
- 카프카
Archives
- Today
- Total
DevBoi
[JPA] JPQL 공부 시작하기전에... 본문
반응형
SQL은 데이터 베이스 테이블을 대상으로 쿼리를 하지만
JPQL은 엔티티 객체를 대상으로 쿼리를 한다,.
또한 SQL을 추상화해서, 특정 데이터베이스 SQL에 의존적이지 않다.
간단한 예다.
동적 쿼리를 생성하기에는 ibatis와 mybatis가,편하긴 하지만 jpa에서도 장점은 있다.
Criteria를 쓰면, 동적 쿼리에 대한 생성이되지만, 실무에서 쓰기에는 유지보수가 말이안된다.
그래서 동적 쿼리는 Criteria보다, QueryDSL로 많이 사용한다고 한다.
QueryDsl 은 오픈소스이다.
이 기술은, 자바 처럼 실수로 오타가 나면 디버깅이 바로 표기되기 떄문에 빠르고
동적 쿼리로 생성되기에 겉 형태가 sql과 비슷하여, 눈에 잘들어온다는 장점이 있다.
또한 자바 쿼리라서 재사용 또한 가능하다.
jpql을 알아야 querydsl을 사용할수있다.
nativeSql를 사용할수도있고,
스프링 jdbcTemplate, mybatis를 함께 사용할수도있다.
하지만 이렇게 섞어서 사용할때는 영속성 컨텍스트를 적절한 시점에 강제로 플러시할 필요가 있다.
flush는, em.createSql을 할때 자동으로 된다. 즉 jpa관련 기술을 사용할때는 자동 flush 설정이 되어있어서
걱정할필요가 없다.
반응형
'Develop > [JPA]' 카테고리의 다른 글
[jpa] 페이징 & 조인 & 쿼리 간략 (0) | 2022.03.11 |
---|---|
[JPQL] JPQL 시작하기 (0) | 2022.03.10 |
[JPA] 값 타입 (0) | 2022.03.10 |
[JPA] 영속성 전이 (0) | 2022.03.07 |
[JPA] 지연로딩과 즉시로딩 (0) | 2022.03.07 |