


동작화면



✅ 엔티티의 생명주기 ✅ em.persist() ✅ em.detach() ✅ em.clear() ✅ em.close() ✅ em.remove()
✅ @ Entity ✅ @ Table ✅ @Column ✅ @Enumerated ✅ @Temporal ✅ @Lob ✅ @Transient

✅ 단방향 연관관계 ✅ 양방향 연관관계 ✅ 연관관계의 주인

✅ @ManyToOne ✅ @OneToMany ✅ @OneToOne ✅ @ManyToMany

✅ @DiscriminatorColumn ✅ @DiscriminatorValue("")

✅ @MappedSuperclass

✅ em.getReference()

✅ fetch = FetchType.LAZY ✅ fetch = FetchType.EAGER
✅ cascade = CascadeType.ALL ✅ orphanRemoval = true

✅ @Embeddable ✅ @Embedded ✅ @AttributeOverride ✅ a.equals(b)

✅ @ElementCollection ✅ @CollectionTable ✅ 실무에서는 값 타입 컬렉션 대신에 일대다 관계를 고려한다. (대신 영속성 전이(Cascade) + 고아 객체 제거 사용)
✅ TypeQuery vs Query ✅ query.getResultList() vs query.getSingleResult()
✅ setFirstResult() ✅ setMaxResults()
✅ case식 ✅ COALESCE ✅ NULLIF
✅ 상태 필드 ✅ 연관 필드 ✅ 명시적 조인 ✅ 묵시적 조인

✅ 엔티티 페치 조인 ✅ 컬렉션 페치 조인 ✅ DISTINCT


✅ 제네릭(generic)

✅ 메소드 이름으로 쿼리 생성 ✅ @NamedQuery ✅ @Query
위치 기반은 순서가 바뀌어 유지보수가 어려워질 수 있으므로 대부분 이름 기반을 사용함Collection 타입으로 in절을 지원한다.
✅ Optional
✅ @Modifying
✅ @EntityGraph ✅ @NamedEntityGraph

✅ @EnableJpaAuditing ✅ @MappedSuperclass ✅ @CreatedDate ✅ @LastModifiedDate ✅ @CreatedBy ✅ @LastModifiedBy
✅ Persistable ✅ @CreatedDate

✅ JPA Criteria ✅ jpql ✅ Querydsl