현재 위치 - 중국 분류 정보 발표 플랫폼 - 생활 서비스 정보 - 첸 니안이 '보스트 홀'에서 말한 것은 Vancl Eslite가 ZARA의 운영 모델 전략을 모방하고 있다는 것입니다. 전문가들이 자세히 분석하는 데 도움이 되었으면 좋겠습니다.

첸 니안이 '보스트 홀'에서 말한 것은 Vancl Eslite가 ZARA의 운영 모델 전략을 모방하고 있다는 것입니다. 전문가들이 자세히 분석하는 데 도움이 되었으면 좋겠습니다.

Hibernate의 검색 전략에는 클래스 수준 검색 전략과 연관 수준 검색 전략이 포함됩니다.

클래스 수준 검색 전략에는 즉시 검색과 지연 검색이 포함됩니다. 기본 검색 전략은 즉시 검색입니다. Hibernate 매핑 파일에서는 에 게으른 속성을 구성하여 검색 전략을 결정합니다. 세션 검색 방법의 경우 클래스 수준 검색 전략은 로드 방법에만 적용됩니다. 즉, get 및 qurey 검색의 경우 일반적으로 지연이 false인지 true인지에 관계없이 영구 객체가 즉시 로드됩니다. 객체를 검색하려면 해당 객체에 액세스해야 하므로 즉각적인 검색이 일반적인 선택입니다. 객체를 검색할 수 없는 경우(즉시 검색의 경우) 로드 메서드에서 예외가 발생하므로 개인적으로 로드 검색을 사용하지 않는 것이 좋으며 의 지연 속성도 다대일 및 일대일에 영향을 미치기 때문입니다. 일대일 검색 전략이므로 로드 방법을 사용할 필요가 없습니다.

연관 수준 검색 전략에는 즉시 검색, 지연 검색 및 긴급 왼쪽 외부 조인 검색이 포함됩니다. 연관 수준 검색의 경우 일대다 및 다대다, 다대일 및 일대일의 두 가지 상황으로 나눌 수 있습니다.

일대다 및 다대다 관계는 일반적으로 을 사용하여 구성됩니다. 에는 지연 및 외부 조인 속성이 있으며, 서로 다른 값에 따라 검색 전략이 결정됩니다.

1) 즉시 검색: 이 때 일대다 기본 검색 전략은lazy=false, external-join=false입니다. 쓸모가 없다면 이 검색 방법을 사용하지 마세요.

2) 지연된 검색:lazy=true, external-join=false(outer-join=true는 의미가 없음), 이것이 선호되는 검색 방법입니다.

3) 긴급 왼쪽 외부 조인 검색: 현재 이 검색 전략은 id 기반 검색 방법(load, get)에만 적용 가능하고 쿼리에는 적용되지 않습니다. . 컬렉션 검색(즉시 검색 전략을 사용합니다). 즉시 검색에 비해 이 검색 전략은 하나의 SQL 문을 줄이지만 Hibernate에서는 외부 조인=true로 구성된 이 하나만 있을 수 있습니다.

다대일 및 일대일 검색 전략은 일반적으로 <다대일> 및 <일대일> 구성을 사용합니다. <다대일>에서 구성해야 할 속성은 외부 조인이고, 한쪽에 연결된 <클래스>의 지연 속성도 구성해야 합니다(<다대일 구성은 게으르지 않습니다). >), they 결합된 검색 전략은 다음과 같습니다:

1) external-join=auto: 기본값이며,lazy=true이면 지연 검색이고,lazy=false이면 긴급 검색입니다. 외부 조인 검색.

2) 외부 조인=true는 지연 여부와 상관없이 긴급 왼쪽 외부 조인 검색입니다.

3) external-join=false,lazy=true이면 지연 검색이고, 그렇지 않으면 즉시 검색입니다.

기본적으로(outer-join=auto,lazy=false) Hibernate는 긴급 왼쪽 외부 조인을 사용하여 연관된 일방 객체를 검색한다는 것을 알 수 있습니다.

내 생각에는 많은 경우 한쪽 끝과 연관된 객체를 로드할 필요가 없습니다(대부분 우리에게 필요한 것은 연관된 객체의 ID뿐입니다). 또한 연관된 ​​객체가 긴급 왼쪽 외부 연결을 사용하는 경우에도 마찬가지입니다. 검색, 선택이 나타납니다. 명령문에 외부 연결 테이블이 여러 개 있으면 검색 성능에 영향을 미치게 됩니다. 이것이 Hibernate가 hibernate.max_fetch_length 속성을 통해 외부 연결의 깊이를 제어하는 ​​이유입니다. 긴급 Left Outer Join 검색의 경우 쿼리의 컬렉션 검색은 적용되지 않으며 즉시 검색 전략을 채택합니다.

검색 전략은 실제 상황에 맞게 선택해야 합니다. 즉시 검색과 지연 검색의 장점은 select 문이 간단하고(테이블당 하나의 문) 쿼리 속도가 빠르다는 것입니다. 단점은 테이블을 연결하는 데 여러 개의 select 문이 필요하므로 데이터베이스 액세스 빈도가 증가한다는 것입니다. . 따라서 즉시 검색과 지연 검색을 선택할 때 일괄 검색 전략을 사용하여 select 문 수를 줄이는 것을 고려할 수 있습니다(batch-size 속성 구성). 왼쪽 외부 조인 검색의 경우 선택 횟수가 적다는 장점이 있지만, 선택 문의 복잡성이 증가하고 여러 테이블 간의 연결 작업에 시간이 많이 걸린다는 단점이 있습니다. 또한 구성 파일은 죽었으나 프로그램은 살아 있으며 필요에 따라 프로그램에 표시되는 검색 전략을 지정할 수 있습니다(프로그램에 표시되는 긴급 왼쪽 외부 연결 검색을 지정해야 하는 경우가 종종 있습니다). 검색 전략 구성에 따른 효과를 확인하려면 프로그램 실행 시 Hibernate가 실행하는 SQL 문을 볼 수 있도록 show_sql 속성을 구성하면 됩니다.