# native query

5개의 포스트
post-thumbnail

[Spring Data JPA] JPA? JPQL? nativeQuery? jQuery? ORM? 다 뭐야 헷갈려!

작년에 스프링 부트 프로젝트를 참여하면서 웹사이트를 만들었었다. 만드는 과정에서 JPA, JPQL, ORM, Hibernate, nativeQuery, jQuery 생소한 내용들이 많이 쏟아져나와서 처음엔 헷갈렸다. 하나씩 알아보자! JPA가 무엇일까? JPA는 Java Persistence API의 약자로 자바에서 ORM(Object-Relational Mapping)을 사용하기 위한 자바 API 표준명세이다. 표준명세라고 하면은 어떤 기술이나 제품이 가져야하는 특성, 요구사항, 규칙 등을 명세화한 문서나 규격을 의미한다. 즉, JPA에서 기술명세는 해당 기술이나 제품의 동작원리, 사용방법 API 안터페이스 등을 자세하게 기술하고 정의한 문서이다. 여기서 그럼 또 ORM은 뭘까? ORM은 객체 지향 프로그래밍 언어와 관계형데이터베이스, 예를들어 Oracle, Mysql, H2 등 데이터베이스간에 데이터를 변환하는 기술이다. 변환을 시켜줘야하는 기술이

2023년 3월 26일
·
0개의 댓글
·
post-thumbnail

JPA version 1.5.4 UNION ALL

JPA 1.5.4 버전 개발 환경에서 native query를 작성하였는데 문제가 발생 하였다. UNION ALL 하여 소계, 총계를 구하는 쿼리였는데 소계 구하는 쿼리를 "A", 총계 구하는 쿼리를 "B" 로 예를 들자면. B의 몇개 컬럼은 '' 공백으로 별칭을 주었는데 B의 '' 공백컬럼에 A의 컬럼값이 들어가서 조회가 되었다. response 는 다음과 같이 받아왔다. 디비툴에서는 COL 은 '2' NAME ''을 정상적으로 조회 되었지만 reponse 결과는 전혀 달랐다. >ROWNUM / COL / NAME 1 / 1 / A 1 / 1 / A 여러 시도 끝에 ROWNUM을 다르게 줬더니 정상적으로 원하는 결과를 얻게 되었다. >ROWNUM / COL / NAME 1 / 1 / A 2 / 2 / > JPA 1.5.4 버전의 경우 ROWNUM이란 별칭을 분기처리를 한 것인지 모르겠다, JPA 2.6.0 버전 환경에서 동

2023년 3월 24일
·
0개의 댓글
·

JPA Native Query

Native Query 사용해보자. 네이티브 쿼리는 JPQL과 다르게 Entity 속성들을 사용하지 못합니다. select * from book 와 같이 테이블 이름이 들어간다. 다른 컬럼 이름을 적을때도 DB Table에서 쓰는 컬럼 이름을 적어야 한다. 현업에서는 네이티브 쿼리를 최소한으로 하는게 좋다. 운영중이나 Test 중에 오류가 생길수도 있기 때문이다. 그럼 네이티브 쿼리는 언제쓸까? 첫번째는, 성능 이슈가 존재할때 쓴다. deleteAll쿼리가 모든 컬럼을 조회해서 하나하나씩 지우는 성능 이슈가 있었다. 그래서 나온게 deleteAllInBatch나 deleteInBatch이다. 하지만 update 쿼리는 없다. 그래서 하나하나 조회해서 update해야한다. 위 코드의 books를 불러와서 하나하나 "IT전문서" 카테고를 붙이면 성능이슈가 발생할 것이다. 그래서 deleteAllInBatch같이 한번에 할수있는 쿼리 ("update book

2022년 2월 15일
·
0개의 댓글
·
post-thumbnail

[JPA & Hibernate] Spring Data JPA

✔ 깃허브 소스코드 > ✔ Udemy 강의영상 🚀 스프링 데이터 JPA란? 스프링 데이터 JPA는 데이터 액세스 개발을 할 때 구현 클래스 없이 인터페이스만 선언해도 개발을 완료할 수 있도록 도와주는 라이브러리입니다. ✔ 인터페이스 선언하기 를 상속받고 제네릭 타입에는 을 지정해줍니다. 기본적인 CRUD 기능은 모두 제공해줍니다. T는 엔티티, ID는 엔티티의 식별자 타입, S는 엔티티와 그 자식 엔티티를 의미합니다. : 새로운 엔티티를 저장, 해당 엔티티에 아이디가 존재한다면 수정 : 해당 엔티티 삭제, 내부에서 호출 : 해당 아이디를 가지는 엔티티 조회, 내부에서 호출 :

2020년 8월 23일
·
0개의 댓글
·
post-thumbnail

[JPA & Hibernate] Native Queries

✔ 깃허브 소스코드 > ✔ Udemy 강의영상

2020년 8월 10일
·
0개의 댓글
·