2010-12-28 3 views
0

J'essaie de faire fonctionner cette requête, dans mon atelier Model j'ai un champ de type enum où il se connecte aux rôles. Je n'ai jamais utilisé HQL pour cela, seulement des requêtes HQL simples, je sais que c'est vraiment puissant et simplifie beaucoup de choses mais quand j'essaie de créer une requête pour correspondre au rôle énuméré, il envoie un message à propos de " déréférencement ".Requête HQL avec enums

Les modèles correspondants cette requête est

  • AccountRoles (classe ENUM)
  • Atelier (classe annotée)
  • compte (classe annotée)

.

NamedQuery(name="namedOne", 
    query="from Workshop s inner join Account a where a.account_role = :role" 

J'ai essayé une requête qui est probablement faux, l'autre comme ce

NamedQuery(name="namedOne", query="from Workshop accounts.account_role = :role" 

Les comptes sur le terrain contient

@OneToMany(fetch=FetchType.EAGER) 
@JoinTable(name="links_ws2accounts") 
public List<models.ws.Account> accounts = new ArrayList<models.ws.Account>(); 

Toute suggestion est appréciée, si vous avez besoin d'un peu plus d'informations laissez-moi savoir

Répondre

1

La question n'est pas très claire, mais je suppose que la requête devrait l ook comme ceci:

from Workshop s inner join s.accounts a where a.account_role = :role 
+0

Ça marche man! Merci, j'avais un problème avec la création de la requête, je pensais que c'était juste "aller le long des chemins" sans la jointure interne (attendez-vous à le faire automatiquement). À votre santé – allenskd