Je suis en train de travailler comment les clients désireux charge dans la requête HQL suivante:Puis-je charger une propriété avec HQL?
select order.Customer
from Order as order
where order.Id in
(
select itemId
from BadItem as badItem
where (badItemType = :itemType) and (badItem.Date >= :yesterday)
)
Il y a beaucoup d'habitude à une relation entre les commandes et les clients.
Je voudrais faire est dans la requête, par opposition à la mise en correspondance, si possible - comme dans « join fetch ... »
Peut-être que la requête serait comme une jointure remaniée avec et je J'ai un blocage mental.
Des idées?
Merci pour l'aide. J'essaie d'abord votre requête "alternative", mais j'obtiens une "extraction de jointure de requête spécifiée, mais le propriétaire de l'association récupérée n'était pas présent dans l'erreur de liste de sélection". Des idées? Je vais essayer votre première suggestion une fois que je peux travailler sur la façon de mapper BadItem et Order (la clé dans la table BadItems est effectivement trois colonnes - pas ma conception). – dommer
Hmm, On dirait que la raison est que si vous sélectionnez les clients, ils seront déjà peuplés. Cela signifie donc essentiellement que vos questions sont sans intérêt. Si vous sélectionnez directement les clients, les clients ne peuvent pas être paresseux (hibernate ne supporte pas le chargement paresseux au niveau de l'attribut) et sont donc déjà chargés. Cela pourrait-il être cela? –
On l'aurait pensé, mais ma requête originale lance une exception LazyInitializationException pour Customer._orders (_orders est le champ de support de la propriété Order). – dommer