Hibernate Mappage XML: Paresseux Faux ou Chercher de l'Sélectionner?
J'ai une question simple. J'ai trouvé ce Hibernate config sur notre projet:
<many-to-one name="employee"
class="com.myapp.Employee"
cascade="merge"
lazy="false"
fetch="select">
<column name="employee_id"
sql-type="bigint"
not-null="true"/>
</many-to-one>
N'est pas fetch="sélectionnez" signifie "Paresseux charge de toutes les collections et les entités" basé sur Stratégies De Chargement. Mais en écrivant lazy="false" dire de ne pas le lazy load. Donc la config ci-dessus, dit: "Désactiver le chargement différé. Activer le chargement paresseux." En effet, cela signifie que la propriété n'est pas chargé?
Afin que je puisse raccourcir cette config comme:
<many-to-one name="employee"
class="com.myapp.Employee"
cascade="merge"
fetch="select">
<column name="employee_id"
sql-type="bigint"
not-null="true"/>
</many-to-one>
Mais n'est-ce pas fetch="sélectionnez" le mode par défaut? Donc en effet, je peux déclarer la même config que:
<many-to-one name="employee"
class="com.myapp.Employee"
cascade="merge">
<column name="employee_id"
sql-type="bigint"
not-null="true"/>
</many-to-one>
Suis-je la corriger? De mal? Des idées? Grâce
Si je veux activer le chargement paresseux, je dois ajouter lazy="true" et supprimer lazy="false"?
Vous devez vous connecter pour publier un commentaire.
Je pense Mode de lecture et le temps d'extraction sont des concepts qui ne sont pas totalement se chevauchent.
Lazy="true|false"
contrôle si une association est chargé avec impatience ou sur demande.fetch="select|subselect|join|batch"
contrôle la façon dont est cette entité ou d'une collection chargement, lorsque c'est nécessaire pour être chargé.Donc pour répondre à ta question, après avoir
fetch="select"
signifie:Cela ne signifie pas que le chargement paresseux est désactivé! C'est contrôlée par le
lazy="true|false"
drapeau.Avec
lazy="true"
etfetch="select"
Hibernate paresseux charge de la collecte et de le charger avec un select. Si vous définissezlazy="false"
, le même select sera exécutée, la différence sera qu'il sera exécuté avec impatience. Espérons que cela a du sens.Ont un coup d'oeil ici aussi: http://community.jboss.org/wiki/AShortPrimerOnFetchingStrategies
Si vous le réglez à paresseux, alors que l'extérieur de la carte ne sélectionnez pas à l'employé s'il n'est pas nécessaire. L'extraction montre comment serait-il interroger le salarié que si c'est nécessaire.