2014-12-02 6 views
0

현재 열심히 대 지연로드에 대해 읽고 있습니다. 나는 혼란스럽고로드와 비교하여로드를 비교합니다.왜 지연/열심히로드 데이터베이스 수준을 사용

두 개의 UI 섹션이 있다고 가정 해 봅시다. 그 중 하나는 부모 데이터와 함께 자식 데이터를 표시하고 두 번째 UI에는 부모 데이터 만 표시하고 싶습니다. 데이터베이스 수준에서 두 가지 다른 호출을 작성해야합니다 하위 데이터를로드하고 상위 데이터 만로드하는 중 하나입니다.

게으른/열망하는로드는이 경우에 게으른로드를 수행하면 조인 등을 사용하는 것보다 나중에 쿼리 할 것이므로 첫 번째 경우에 더 많은 시간을 소비 할 것이고 따라서 열심히 사용하면 시간이 소모되므로 아이 데이터가 필요 없기 때문에 케이스 2에서.

내가 잘못하면 열심히/게으른로드가 도움이 될 수있는 몇 가지 사례를 알려주십시오.

답변

2

예를 들어 설명하겠습니다. 시나리오는 그와 같습니다.

당신은 많은 장난감을 가진 아이를 가진 부모입니다. 그러나 현재 문제는 당신이 그에게 전화 할 때마다 (우리는 당신이 소년이 있다고 가정 함), 그는 그의 모든 장난감을 가지고 당신에게옵니다. 이제는 그가 항상 장난감을 들고 다니지 않기를 바란다는 점에서 문제가됩니다.

그래서 이론적 인 부모가되면 바로 자녀의 장난감을 LAZY로 정의합니다. 지금 당신이 그에게 전화 할 때마다, 그는 단지 장난감없이 당신에게갑니다.

하지만 다른 문제가 있습니다. 가족 여행을 할 때가되면, 아이가 여행에 지루해 할 것이므로 장난감을 가져 오라고합니다. 그러나 당신이 엄격하게 LAZY를 아동의 장난감에 집행 한 이후로, 당신은 그 장난감을 가지고 오라고 물을 수 없습니다. 이것은 EAGER 가져 오기가 시작되는 곳입니다.

+0

나는이 모든 것에 대해 명확하다.이 문제를 어떻게 처리 할 것인가? 최대 절전 모드에 대해 이야기하고 아이를 가져 오기위한 단일 호출을 작성한 경우 두 경우 모두 좋지만 다른 것에 좋기 때문에 게으르거나 열망해야한다. 나는 내 질문에 설명했듯이, 또는 단순히 두 가지 다른 최대 절전 모드 호출을 작성해야합니다. 나에 따르면 –

+0

게으른 로딩이 좋다. – Harshit

+0

[link] http://dinukaroshan.blogspot.in/2012/08/lazyeager-loading-using-hibernate-by.html이 링크가 도움이 될 수도 있습니다. – Harshit