hibernateはどのようにロードを遅らせたのか


Hibernate                       。

                   ,            。 Hibernate     ,   <class>    lazy         。  Session     ,           load  ;   ,  get、qurey  ,               lazy false  true.    ,            ,            。  load               (        ),           load  ;   <class>  lazy                  ,    load        。

               、             。        ,           、             。

                 <set>  。<set> lazy outer-join  ,              。

  1)    :            ,  lazy=false,outer-join=false.           ,            ,             。

  2)    :  lazy=true,outer-join=false(outer-join=true     ),           。

  3)        :   lazy=false,outer-join=true,            id    (load、get),     query     (          )。       ,           sql  ,  Hibernate ,     <set>    outer-join=true.

                 <many-to-one>、<one-to-one>  。<many- to-one>          outer-join,       one    <class> lazy  (      <many-to-one>  lazy ),             :

  1) outer-join=auto:     ,  lazy=true     ,  lazy=false         。

  2) outer-join=true,   lazy,          。

  3) outer-join=false,  lazy=true     ,       。

      ,       (outer-join=auto,lazy=false),    one   Hibernate           。   ,     ,        one      (                id);  ,                  ,    select          ,              ,      Hibernate   hibernate.max_fetch_depth           。          ,query         ,          。

        ,            。           ,       select    (       )、     ,            select  ,           。              ,               select     (  batch-size  )。         ,    select  ,    select        ,               。  ,       ,      ,                   (                      )。               ,    show_sql         Hibernate   sql  。