JPAQueryFactory는 QueryDSL의 해석과 구성의 해당 것으로, 다양한 SQL 조회를 Java 패턴으로 구성가능@ManyToOne을 통해 Group과 가장 관련@OneToMany를 통해 Idol 목록을 가지고 있음orphanRemoval 또한 값 사용 및 유지에 대한 포함 사각 가능addIdol, removeIdol 같은 편의 메서드 제공String jpql = "SELECT i FROM Idol i WHERE i.idolName = ?1";
String sql = "SELECT * FROM tbl_idol WHERE idol_name = ?1";
String sql = "SELECT * FROM tbl_idol WHERE idol_name = ?";
factory.selectFrom(idol)
.where(idol.idolName.eq("사쿠라"))
.fetchOne();
selectFrom, where, fetchOne() 를 통해 할일적으로 조회 구성idol.idolName.eq("리즈").and(idol.age.eq(20))
idol.age.between(10,30)idol.age.in(10, 20)idol.idolName.contains("김")fetch(): 모든 결과 (단일/다중)fetchOne(): 단일 결과fetchFirst(): 첫 번째 결과Optional<Idol> fetchOne = Optional.ofNullable(
factory.selectFrom(idol)
.where(idol.idolName.eq("김체원"))
.fetchOne()
);
START WITH id = 1 → id가 1인 노드부터 시작CONNECT BY PRIOR id = parent_id → 현재 행의 parent_id가 이전 행의 id와 같을 때 연결됨SELECT id, name, parent_id
FROM category
START WITH parent_id IS NULL
CONNECT BY PRIOR id = parent_id;
👉 해당 방식은 Oracle에서 주로 사용되고, 다른 DB에서는 CTE(Common Table Expression)를 활용해 유사한 계층 조회 구현 가능