Lazy Loading VS Eager Loading

Lazy Loading Lazy Loading이란 Lazy Loading은 지연 로딩이라고도 하며, 연관된 엔티티를 실제로 사용할 때 로딩하는 방식이다. 특징 연관된 데이터를 바로 가져오지 않고, 실제로 사용할 때 가져온다. 성능 최적화와 메로리 사용량을 줄이기 위해 사용된다. 연관된 엔티티가 많은 경우 초기 로딩 시간이 단축된다. 예시 1 2 @OneToMany(fetch = FetchType.LAZY) private List<Order> orders; 장점 초기 로딩 시간이 단축된다. 연관된 엔티티가 많은 경우 메모리 사용량을 줄일 수 있다. 단점 연관된 엔티티를 사용할 때마다 쿼리가 실행되어 성능 저하가 발생할 수 있다. Eager Loading Eager Loading이란 Eager Loading은 즉시 로딩이라고도 하며, 엔티티를 조회할 때 연관된 엔티티를 함께 로딩하는 방식이다. ...

6월 8, 2024 · 1 분 · 188 단어 · In-Jun Hwang

엔티티 생명주기 알아보기

엔티티 생명주기 JPA(Java Persistence API)에서 엔티티의 생명주기는 엔티티가 생성되고 소멸할 때까지의 과정을 의미한다. 엔티티 생명주기의 4가지 상태 비영속(new/transient): 새로운 엔티티가 생성되었지만, 아직 EntityManager에 의해 관리되지 않은 상태이다. 데이터베이스에 저장되지 않은 상태이며, 영속성 컨텍스트에 관리되지 않는다. new 키워드로 생성된 엔티티는 비영속 상태이다. 영속(managed): EntityManager에 의해 관리되는 상태로, 영속성 컨텍스트에 저장된 상태이다. 엔티티는 데이터베이스와 동기화되어 있으며, 영속성 컨텍스트에 의해 관리된다. persist() 메서드를 사용하여 엔티티를 영속 상태로 만들 수 있다. 준영속(detached): 영속성 컨텍스트에 의해 관리되지 않는 상태이다. 영속 상태에서 분리된 상태로, 영속성 컨텍스트에 의해 관리되지 않는다. detach() 메서드를 사용하여 엔티티를 준영속 상태로 만들 수 있다. 삭제(removed): ...

6월 8, 2024 · 1 분 · 137 단어 · In-Jun Hwang

EntityManager란 무엇인가?

EntityManager는 엔티티의 생명주기를 관리하고 엔티티와 관련된 모든 작업을 수행한다. EntityManager 뜻 엔티티 매니저는 엔티티의 생명주기를 관리하고 엔티티와 관련된 모든 작업을 수행한다. 엔티티 매니저는 엔티티를 데이터베이스에 저장하거나 데이터베이스에서 엔티티를 읽어오는 등의 작업을 수행한다. 주요 기능 엔티티 매니저의 주요 기능은 다음과 같다: 저장: 엔티티를 데이터베이스에 저장한다. 조회: 데이터베이스에서 엔티티를 읽어온다. 수정: 데이터베이스에 저장된 엔티티를 수정한다. 삭제: 데이터베이스에서 엔티티를 삭제한다. 예제 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 @Repository public class UserRepository { @PersistenceContext private EntityManager em; public void save(User user) { em.persist(user); } public User findById(Long id) { return em.find(User.class, id); } public void update(User user) { em.merge(user); } public void delete(User user) { em.remove(user); } } @PersistenceContext 어노테이션을 사용하여 엔티티 매니저를 주입받을 수 있다. 엔티티 매니저를 사용하여 엔티티를 저장하거나 조회, 수정, 삭제하는 등의 작업을 수행할 수 있다. 엔티티 매니저는 트랜잭션 단위로 동작하며, 트랜잭션이 종료되면 엔티티 매니저가 자동으로 종료된다. ...

6월 7, 2024 · 2 분 · 228 단어 · In-Jun Hwang

Spring Data JPA와 JPA의 차이점

JPA(Java Persistence API) JPA란 무엇인가? JPA는 자바 ORM(Object Relational Mapping) 기술에 대한 API 표준 명세이다. ORM이란 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 기술이다. JPA는 이러한 ORM 기술을 사용하기 위한 인터페이스를 모아놓은 것이다. JPA를 사용하면 개발자는 객체 중심으로 개발을 할 수 있고, JPA가 이를 관계형 데이터베이스에 맞게 SQL을 대신 생성해서 실행해 준다. JPA의 특징 표준 명세: JPA는 자바에서 ORM 기술을 구현하기 위한 표준 명세이다. 객체 중심 개발: JPA를 사용하면 개발자는 객체 중심으로 개발을 할 수 있다. SQL 자동 생성: JPA는 개발자가 직접 SQL을 작성하지 않아도 SQL을 자동으로 생성해서 실행해 준다. 구현체 필요: JPA는 인터페이스이기 때문에 이를 구현한 구현체가 필요하다. Spring Data JPA Spring Data JPA란 무엇인가? Spring Data JPA는 스프링에서 JPA를 쉽게 사용할 수 있도록 도와주는 기술이다. JPA를 사용하기 위해서는 EntityManagerFactory, EntityManager, EntityTransaction 등 많은 설정이 필요한데, Spring Data JPA는 이러한 설정을 대신해준다. 또한 Spring Data JPA는 JPA를 사용하기 위한 다양한 기능을 제공한다. ...

6월 7, 2024 · 2 분 · 290 단어 · In-Jun Hwang