Frage

Ich habe eine Entität A, die einen Fremdschlüssel der Einheit B hat:

entity A --> id, entity_a_name, foreign_key_entity_B 

Wenn ich rufe

return session.createCriteria(EntityA.class).list();  

ich die Eigenschaft entityB innerhalb Einheit A als auch. Wie kann ich es faul Last machen, damit es nicht enityB laden, wenn nicht gebraucht?

War es hilfreich?

Lösung

Es ist unklar, aus Ihrer Beschreibung, welche Art von Beziehung mit dir reden, aber wenn es Many-to-One oder One-to-One ist, sind die Dinge nicht so einfach. Wenn A.entityB NULL-Werte zulässt (nicht optional), dann wird Hibernate die Beziehung, um eifrig Last gezwungen zu sehen, ob die Eigenschaft null ist. Nur durch die Beziehung als nicht-optionale Markierung (in diesem Fall Hibernate übernimmt , dass es nicht null ist, da es ein Fehler anders ist) können Sie es träge machen laden.

Andere Tipps

  
      
  • @ LazyCollection : definiert die lazyness Option auf @ManyToMany   und @OneToMany Verbände.   LazyCollectionOption kann TRUE   (Die Sammlung ist faul und wird   geladen, wenn sein Zustand zugegriffen wird),   EXTRA (die Sammlung ist faul   und alle Operationen werden versuchen,   vermeiden, dass die Sammlung Laden, diese   ist besonders nützlich für große   Sammlungen, wenn alle Laden   Elemente ist nicht erforderlich) und FALSE   (Verein nicht faul)

  •   
  • @ Fetch : definiert die Abrufstrategie verwendet, um die laden   Verband. FetchMode kann SELECT sein   (A select ausgelöst wird, wenn die   Verband muss geladen werden),   Subselect (nur für   Sammlungen, verwenden Sie einen subselect   Strategie - finden Sie in der   Hibernate Referenzdokumentation für   Weitere Informationen) oder JOIN (ein   SQL JOIN die Zuordnung laden   während das Laden der Besitzer juristische Person). BEITRETEN   überschreibt alle lazy Attribute (ein als   Vergesellschaftung geladen, um ein durch JOIN   Strategie kann nicht faul).

  •   
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top