English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Lazy와 Eager는 ORM에서 두 가지 데이터 로드 전략입니다. 예를 들어 Hibernate와 Eclipse Link에서 사용되는休면과 Eclipse Link입니다. 하나의 엔티티 클래스가 다른 엔티티를 참조할 때(예: Employee와 Phone(Employee의 전화번호)), 이러한 데이터 로드 전략을 사용합니다
지연 로드-getter나 size 메서드를 명시적으로 호출할 때만 연관 데이터가 로드됩니다
一对多 셋을 사용할 때, 지연 로드를 사용하십시오
관련 엔티티를 사용하지 않는다고 확신할 때, '지연 로드'를 사용하십시오
Eager 로드-데이터 로드는 부모를 가져올 때 발생합니다
관계가 많지 않을 때, '긴급 로드'를 사용하십시오. 따라서 긴급 로드는 서버에서 추가적인 쿼리를 줄이는 좋은 습관입니다
모든 곳에서 주요 엔티티를 사용하려고 확신할 때, '긴급 로드'를 사용하십시오
순서 | 키 | 느림 | 긴급 |
---|---|---|---|
1 | 추출 전략 | 지연 로드에서는 getter나 size 메서드를 명시적으로 호출할 때만 연관 데이터가 로드됩니다 | 긴급 로드에서는 부모를 가져올 때 데이터 로드가 발생합니다 |
2 | ORM 층의 기본 전략 | 기본적으로 ManyToMany와 OneToMany 연관은 지연 로드 전략을 사용합니다. | 기본적으로 ManyToOne과 OneToOne 연관은 지연 로드 전략을 사용합니다. |
3 | 로드 구성 | 주석 매개변수를 사용하여 활성화할 수 있습니다: fetch = FetchType.LAZY | 주석 매개변수를 사용하여 활성화할 수 있습니다: fetch = FetchType.EAGER |
4 | 성능 | 초기 로드 시간은 급한 로드보다 훨씬 짧습니다 | 불필요한 데이터를 너무 많이 로드하면 성능에 영향을 줄 수 있습니다 |