본문 바로가기
728x90
반응형
SMALL

IT/JPA7

JPQL, NativeSQL, Criteria, QueryDSL, JOOQ... JPA를 이용해서 Application 의 모든 로직을 처리하는 것은 사실상 어렵다고 본다. 단순한 CRUD와 일반적인 CUD에 대해서는 JPA로 아주 큰 효과를 볼 수 있을 것으로 보이나 실제 우리가 만드는 Application 들은 복잡한 구조로 데이터를 읽을 필요가 있다. JPA가 기본적으로 제공하는 기능들로 복잡한 구조로 데이터를 읽는 것은 어려우며 보다 쉬운 방법들이 필요하다. JPQL - 이름만으로 어떤 녀석인지 느낌이 온다. - 테이블이 아닌 Entity 객체를 대상으로 검색하는 객체지향 쿼리이며 - SQL을 추상화해서 특정 데이터베이스 SQL에 의존하지 않는다. - 영속성 컨텍스트에서 찾지 않고 항상 데이터베이스를 조회 한다. - JPQL로 조회한 엔티티는 영속 상태가 된다. - JPQL은.. 2019. 9. 6.
@OneToMany 단방향을 @ManyToOne 양방향으로 JPA 에서 Entity 간의 "관계" 가 중요한데 Parent - Child 가 있을 때 쉽게 생각하면 아래와 같이 @OneToMany 로 매핑할 수 있다. @Entity @Getter @Setter @Builder @NoArgsConstructor @AllArgsConstructor public class Parent { @Id @Column(name = "parent_id") @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; private String parentValue; @OneToMany @Builder.Default private List childList = new ArrayList(); } @Entity @Gette.. 2019. 8. 28.
Spring Data JPA 기초 #1 Spring Data JPA에 대해서 알아보자. JPA 처리를 담당하는 Repository는 기본적으로 4가지가 있다. Repository CrudRepository PagingAndSortingRepository JpaRepository T는 Entity의 타입클래스이고 ID는 P.K 값의 Type 이다. CrudRepository는 관리되는 엔티티 클래스에 대해 정교한 CRUD 기능을 제공한다. public interface CrudRepository extends Repository { S save(S entity); Optional findById(ID primaryKey); Iterable findAll(); long count(); void delete(T entity); boolean exi.. 2019. 1. 7.
728x90
반응형
LIST