자바 객체를 SQL로 DB를 관리하고, DB를 다시 SQL을 통해 자바 객체로 반환하는 과정이 귀찮음.객체와 RDBMS 간의 패러다임의 불일치RDBMS와 객체지향 간의 중간에서 2개를 매핑하는 역할을 ORM이라고 한다.JPA는 이런 ORM의 표준 명세로 자바에서 제공하
SQL은 표존 SQL과 DBMS 벤더에서 제공하는 SQL이 존재.각 공급업체에서 만든 SQL을 방언(Dialect)이라고 함.애플리케이션 구동 시 JPA의 DB 초기화 전략을 설정 가능.총 5가지의 옵션을 제공한다update는 삭제 시 문제 발생을 고려해, 칼럼 추가만
엔티티를 만들기 위해 테이블에 어떤 데이터가 저장될지 설계해야함그전에 엔티티 매핑 관련 어노테이션을 알아보자테이블, 스키마, 인덱스, 뷰, 도메인을 정의, 변경, 제거할 때 사용하는 용어.( CREATE, DROP 등이 이에 해당 )Entity 클래스에는 기본키가 있어
EntityManager를 이용해 엔티티 저장하지 않고, Spring Data JPA에선 EntityManager를 직접 설정하지 않아도 된다.그대신 DAO(Data Access Object)의 역할을 하는 Repository 인터페이스를 설계한 후 사용하면 된다.JP
Repository 인터페이스에 간단한 네이밍 룰을 이용해 메서드를 작성해서 원하는 쿼리를 실행할 수 있다 규칙 엔티티 이름은 생략이 가능하다.이제 해당 메서드를 테스트 코드에서 사용해보자!여러 개의 조건을 이용한 검색 및 정렬도 가능하다.이 때에는 JPQL을 이용하기
JPARepository의 메서드를 이용해서 조회 시, 조건이 많아지면 이름만으론 구분하기 힘들다.그렇기 때문에 직접 쿼리를 작성할 수 있도록 @Query를 지원한다.@Query는 JPQL을 이용해서 작성해야한다.특정 DB SQL에 의존하지 않음.@Param : 파라미
@Query는 JPQL 문법을 문자열로 입력하기 때문에, 컴파일 시점에 에러가 발견되지 않는다.이를 보완하기 위한 Querydsl를 알아보자.위 코드의 JPQL의 문법 중 where를 wheere로 잘못 입력되었다.이때 Querydsl이 오타 발생시 바로 알려주고, 동