전체 글

본 포스팅은 인프런 - 자바 ORM 표준 JPA 프로그래밍 (기본편) 을 강의를 바탕으로 공부하고 정리한 글입니다. 서브 쿼리 JPQL도 SQL처럼 서브 쿼리를 지원한다. 서브 쿼리는 쿼리 안에서 또 다른 쿼리를 말한다. 다음은 서브 쿼리를 사용한 예시이다. /* 나이가 평균보다 많은 회원을 조회 */ select m from Member m where m.age > (select avg(m2.age) from Memver m2) 예시를 보면 메인 쿼리와 서브 쿼리는 서로 전혀 관계가 없도록 한 것을 알 수 있다. 메인 쿼리에서는 m을 사용하지만, 서브 쿼리에서는 m2로 따로 정의해서 둘이 전혀 연관이 없도록 작성되어 있다. 이렇게 서브 쿼리를 짜야 성능이 잘 나온다. /* 한 건이라도 주문한 고객을 조..
본 포스팅은 인프런 - 자바 ORM 표준 JPA 프로그래밍 (기본편) 을 강의를 바탕으로 공부하고 정리한 글입니다. 조인 // 내부 조인 SELECT m FROM Member m [INNER] JOIN m.team t // 외부 조인 SELECT m FROM Member m LEFT [OUTER] JOIN m.team t // 세타 조인 SELECT count(m) FROM Member m, Team t WHERE m.username=t.name 내부 조인 : 조인 대상(team)이 없으면 데이터(member)를 출력하지 않는다. 외부 조인 : 조인 대상(team)이 없어도 데이터(member)를 출력한다. 세타 조인 : 막 쿼리 내부(이너) 조인 Member member = new Member(); m..
인텔리제이 설정의 Code Style에서 외부 코드 포맷을 등록해서 사용할 수 있다. Import Scheme를 클릭한 뒤 본인이 다운받은 xml 파일을 등록해 사용하면 된다. 외부 코드 포맷 다운로드 이런 화면이 나오면 우클릭 후 다른 이름으로 저장한다. (이때 확장자가 xml인지 확인!) 📎 참고 포맷 링크 네이버 포맷 구글 포맷 Reference https://bestinu.tistory.com/64
본 포스팅은 인프런 - 자바 ORM 표준 JPA 프로그래밍 (기본편) 을 강의를 바탕으로 공부하고 정리한 글입니다. 페이징 JPA는 다음 두 API를 사용해 페이징 처리를 할 수 있다. setFirstResult(int startPosition) 조회 시작 위치 setMaxResults(int maxResult) 조회 할 데이터의 수 거두절미하고 바로 코드로 알아보자. List result = em.createQuery("select m from Member m order by m.age desc", Member.class) .setFirstResult(1) // 1번째 부터 .setMaxResults(10) // 10개를 가져오겠다 .getResultList(); System.out.println("r..
커밋 메세지 타입 Feat 새로운 기능 추가 및 업데이트 Fix 버그 또는 에러 수정 Hotfix 급하게 치명적인 버그 수정 Style 스타일 수정 (포맷팅, 세미콜론 누락, 오타, 함수명 수정 등) Refactor 코드 리팩토링 (똑같은 기능인데 코드만 개선) Test 테스트 코드 추가 및 수정 Chore 빌드 수정, 패키지 추가, gitignore, 자잘한 수정 Docs 문서 수정 (readme 등) Comment 주석 수정 및 삭제 File 파일 이동 또는 삭제, 파일명 변경 Design 디자인 수정 Reference 의미있는 commit 메세지와 깔끔한 history 커밋 컨벤션 설정하기 git 컨벤션 commit, branch 전략 git 커밋 메세지는 왜 중요할까?
본 포스팅은 인프런 - 자바 ORM 표준 JPA 프로그래밍 (기본편) 을 강의를 바탕으로 공부하고 정리한 글입니다. JPQL이란? 객체지향 쿼리 언어 테이블을 대상으로 쿼리하는 것이 아닌 엔티티 객체를 대상으로 쿼리한다. JPQL은 SQL을 추상화해서 특정 데이터베이스 SQL에 의존하지 않는다는 장점이 있다. JPQL도 결국 SQL로 변환되어 실행된다. JPQL 기본 문법 select, update, delete select m from Member as m where m.age > 18 SQL 문법과 동일하다. 엔티티, 속성은 대소문자를 구분한다. (Member, age) JPQL 키워드는 대소문자를 구분하지 않는다. (SELECT, FROM, WHERE) 테이블 이름이 아닌 엔티티 이름을 사용한다. ..
본 포스팅은 인프런 - 자바 ORM 표준 JPA 프로그래밍 (기본편) 을 강의를 바탕으로 공부하고 정리한 글입니다. JPA는 매우 다양한 쿼리 방법을 지원한다. JPQL JPA Criteria QueryDsl 네이티브 SQL JDBC API 직접 사용, MyBatis, SpringJdbcTemplate 함께 사용 하나씩 알아보자. JPQL JPA를 사용하면 엔티티 객체를 중심으로 개발해야 한다. 문제는 검색 쿼리인데, 테이블이 아닌 엔티티 객체를 대상으로 검색하기 때문에 모든 DB 데이터를 객체로 변환해 검색하는 것은 불가능하다. 따라서 검색 조건이 포함된 SQL을 통해 필요한 최소한의 데이터만 DB에서 불러와야 한다. JPA는 이러한 문제를 위해 JPQL을 제공한다. SQL을 추상화한 객체 지향 쿼리 ..
· ☕ Java/API
이번 포스팅에서는 Java에서 특정 문자열을 원하는 문자열로 치환하는 방법을 소개한다. 1️⃣ replace() 2️⃣ replaceAll() 3️⃣ replaceFirst() replace() 첫번째 인자값 : 변환하고자 하는 대상이 되는 문자열 두번째 인자값 : 변환할 문자 값 String str = "가나다라마바사"; str.replace("나다라", "아자차"); // 가아자차마바사 "나다라"라는 문자를 "아자차"로 치환한다. String str = "가가가가가"; str2.replace("가", "나"); // 나나나나나 "가"라는 문자를 순차적으로 "나"로 치환한다. replaceAll() 첫번째 인자값 : 변환하고자 하는 대상이 되는 문자열 두번째 인자값 : 변환할 문자 값 replace()..
an2z
침착하고 느긋하고 꾸준하게