JPQL

JPQL 중급
경로 표현식 .을 찍어 객체 그래프를 탐색하는 것이다. 연관 필드 : 연관관계를 위한 필드 단일 값 연관 필드 : @XtoOne 대상이 엔티티이다. 컬렉션 값 연관 필드 : @XToMany 대상이 컬렉션이다. 상태 필드는 단순히 값을 저장하는 필드이며, 엔티티가 아니기 때문에 더 이상 탐색이 불가능하고 탐색의 종점이다. class Member { private String username; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "TEAM_ID") private Team team; @OneToMany(mappedBy = "member") private List orders = new ArrayList(); } // jpql m.username ->..

JPQL 기본
소개 EntityManager.find → 이후 필요시 객체 그래프 탐색 검색을 하는 경우 엔티티 객체를 대상으로 쿼리를 작성해야한다. 모든 DB 데이터를 객체로 변환하는 것은 좋지 않기 때문에 필요한 데이터만 불러오기 위해 검색 조건이 포함된 SQL을 사용한다. JPQL은 객체 지향 쿼리 언어이고 엔티티 객체를 대상으로 쿼리를 날린다. (SQL은 DB 대상 쿼리) SQL을 추상화해서 특정 데이터베이스 SQL에 의존하지 않는다. List members = em.createQuery( "select m from Member m where m.username like '%kim%'", Member.class ).getResultList(); Criteria JPQL은 동적 쿼리를 만드는 것이 어렵다. 또한 ..